Nous sommes actuellement le 07 Juil 2026, 17:44

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 4 message(s) ] 
Auteur Message
 Sujet du message: sort avec vba sur excel
MessagePublié: 09 Mai 2005, 08:12 
Hors-ligne
Nouvel adepte
Nouvel adepte

Inscription : 15 Avr 2002, 07:54
Message(s) : 96
Bonjour je cherche à faire un tri (sort) d'une feuille excel en vba
mais les données sont disposées sur 2 lignes donc j'essais de savoir comment passer le paramètre de tri sur 1 champ et garder 2 lignes liées.

exemple

ligne 1 no-dossier2, nom, adresse
ligne 2 no-tel2 , etc...
ligne 3 no-dossier1, nom, adresse
ligne4 no-tel1,etc...

je veux faire le tri par no-dossier mais j'obtiens

no-dossier1,nom,adresse
no-dossier2,nom,adresse
no-tel2,etc...
no-tel1,etc...

alors que je veux avoir ceci
no-dossier1,nom,adresse
no-tel1,etc...
no-dossier2,nom,adresse
no-tel2,etc...

voici le code

Sheets(3).Activate
Nombre_ligne = ActiveSheet.UsedRange.Rows.Count
Range_tri = "b8:E" & Nombre_ligne & ""
Range(Range_tri).Select
Selection.Sort Key1:=Range("B8"), Order1:=xlAscending, Key2:=Range("C8"), Order2:=xlAscending _
, Header:=xlNo, MatchCase:=False, Orientation:=xlSortRows

aider moi merci


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Mai 2005, 16:41 
Hors-ligne
Nouvel adepte
Nouvel adepte
Avatar de l’utilisateur

Inscription : 15 Jan 2002, 21:46
Message(s) : 81
Localisation : Laval
Il n'y a pas de solution miracle, tu pourrais programmer une macro complexe mais tu risquera toujours de finir avec des données mélangées.

Coté organisation, l'idéal est d'avoir tout sur la même ligne.

Si tu veux garder 2 lignes, au moins répéter le no-dossier sur la 2e ligne.


Haut
 Profil  
Répondre en citant  
 Sujet du message: répéter 2 lignes
MessagePublié: 21 Mai 2005, 08:59 
Hors-ligne
Nouvel adepte
Nouvel adepte

Inscription : 15 Avr 2002, 07:54
Message(s) : 96
c'est ce que j'ai fais je répete le numéro clé invisible sur la deuxième ligne mais je cherchais une solution miracle, j'aime me casser la tête.


merci


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 21 Mai 2005, 10:36 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
Voici une macro que j'ai développé, dites-moi si ça fait votre affaire.

Vous sélectionnez la colonne à trier et vous exécutez cette macro, elle va trier les enregistrements selon les données trouvées aux lignes 1,3,5,7,9, etc. en les liant avec les données de la ligne juste en dessous de chaque enregistrement.

Donc

Yves
1
Michel
2
Carl
3
René
4

va donner
Carl
3
Michel
2
René
4
Yves
1

Code :
Sub TriGroupé()
   
    Dim ColNo As Long, i As Long, Data
   
    ColNo = Selection.Column

    Columns(ColNo + 1).Insert Shift:=xlToRight
     
    i = 0
    Do Until Cells(i * 2 + 1, ColNo).Value = ""
        Valeur = Cells(i * 2 + 1, ColNo).Value & "×" & i + 1
       
        Cells(i + 1, ColNo + 1).Value = Valeur
       
        i = i + 1
    Loop
    Columns(ColNo + 1).Sort Key1:=Range(Cells(1, ColNo + 1), Cells(1, ColNo + 1)), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

    Columns(ColNo + 2).Insert Shift:=xlToRight

    i = 0
    Do Until Cells(i * 2 + 1, ColNo).Value = ""
        Data = Split(Cells(i + 1, ColNo + 1).Value, "×")
       
        Cells(i * 2 + 1, ColNo + 2).Value = Data(0)
        Cells(i * 2 + 2, ColNo + 2).Value = Cells((CLng(Data(1))) * 2, ColNo)
       
        i = i + 1
    Loop
   
    Columns(ColNo + 1).Delete Shift:=xlToLeft
    Columns(ColNo).Delete Shift:=xlToLeft
   
    Columns(ColNo).Select

End Sub

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 4 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site