Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/08/2011, 13h51   #1
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 33
Points : 33
Par défaut tri ascendant de 4 colonnes

Bonjour,
J'ai un petit souci avec une acro je souhaiterai faire un tri ascendant mais sur 4 colonnes! Je n'y arrive pas! Voici mon code!

Code :
1
2
3
4
5
6
7
8
9
10
Sub Bouton1047_QuandClic()
 
    ThisWorkbook.Sheets("BDD").Select
    Sheets("BDD").Range("A:P").Sort Key1:=Sheets("BDD").Range("D2"), Order1:=xlAscending, Key2:=Sheets("BDD").Range("F2") _
        , Order2:=xlAscending, Key3:=Sheets("BDD").Range("G2"), Order3:=xlAscending, Key4:=Sheets("BDD").Range("H2"), Order4:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
 
End Sub
Pourriez vous m'aider s'il vous plait!
biddal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h43   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
Si cela n'as pas changé dans les dernières version Excel ne permet d'effectuer un tri que sur 3 colonnes...
L'astuce habituellement utilisée est l'ajout d'une colonne constituée de la concaténation de plusieurs colonnes.

=D2 & F2 & G2 & H2 a place dans une colonne libre du tableau (puis étirement de la formule vers le bas..) .. et ensuite tri sur cette nouvelle colonne...
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h54   #3
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 33
Points : 33
Merci beaucoup maintenant cela fonctionne beaucoup mieux ! Parc ontre j'ai un dernier souci!
En fait sur ma toute première ligne j'ai en tête de colonne de chaque colonne une liste déroulante! Mais je ne veux pas que cette ligne soit prise en compte lors du tri car là lorsque je fais ma macro avec un tri Ascending et bien il me tri également cette ligne et se retrouve tout en bas de la feuille!
Comment faire pour qu'il ne la prenne pas?
Merci d'avance!
biddal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 14h58   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil


Citation:
Header Argument de type XlYesNoGuess facultatif. Indique si la première ligne contient des en-têtes. Cet argument ne peut être utilisé lors du tri de rapports de tableau croisé dynamique.

XlYesNoGuess peut être l'une de ces constantes XlYesNoGuess.
xlGuess. Microsoft Excel détermine s'il existe un en-tête et, le cas échéant, son emplacement.
xlNo par défaut. (La plage entière doit être triée).
xlYes. (La plage entière ne doit pas être triée).
dans ta ligne commande de tri modifie le paramétre Header Header:= xlYes
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h13   #5
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 33
Points : 33
J'ai bien essayé ton code bbil
Voilà ce que j'ai :

Code :
1
2
3
4
5
6
ThisWorkbook.Sheets("BDD").Select
    Sheets("BDD").Range("A2:P2").Sort Key1:=Sheets("BDD").Range("D2"), Order1:=xlAscending, Key2:=Sheets("BDD").Range("F2") _
        , Order2:=xlAscending, Key3:=Sheets("BDD").Range("G2"), Order3:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
Mais cela ne me fait rien en fait je n'ai pas d'erreur rien mais cela ne fonctionne pas! Rien ne se passe!
biddal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h15   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
C'est pas mon code c'est le tient ...

comment cela rien ne se passe ?? ta feuille n'est pas déjà triée ?
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h20   #7
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 33
Points : 33
oui quand je voulais dire ton code c'était l'argument que tu m'as donné! Bien le truc c'est que non rien ne se fait j'ai bien vérifié j'ai fais un tri manuel or macro sur d'autre champs histoire de tout modifier et derrière je lance la macro mais rien ne se passe et je n'ai aucun message d'erreur!
biddal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h41   #8
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 847
Points : 16 847
Envoyer un message via Skype™ à bbil
oui tu as mis A2:P2 comme zone à trier ... une ligne ..?


Code :
1
2
3
4
5
ThisWorkbook.Sheets("BDD").Range("A2").CurrentRegion.Sort Key1:=Sheets("BDD").Range("D2"), Order1:=xlAscending, Key2:=Sheets("BDD").Range("F2") _
        , Order2:=xlAscending, Key3:=Sheets("BDD").Range("G2"), Order3:=xlAscending, Header:= _
        xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
bbil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 15h47   #9
Nouveau Membre du Club
 
Inscription : octobre 2007
Messages : 68
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 68
Points : 33
Points : 33
Oui je viens de m'en aperecvoir! Merci quand même lol! Ce la venait donc de mon code encore désolé du dérangement :p
biddal est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h55.


 
 
 
 
Partenaires

Hébergement Web