IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

tri ascendant de 4 colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    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...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    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!

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut


    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    J'ai bien essayé ton code bbil
    Voilà ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    C'est pas mon code c'est le tient ...

    comment cela rien ne se passe ?? ta feuille n'est pas déjà triée ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    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!

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    oui tu as mis A2:P2 comme zone à trier ... une ligne ..?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] Tri ascending OK, Tri descending KO
    Par SONY30 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 31/10/2006, 17h39
  2. Tri ascendant et decendant d'un dbgrid
    Par nou366 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/05/2006, 09h18
  3. [FLASH 8] DataGrid - tri par rapport à la colonne
    Par aldo-tlse dans le forum Flash
    Réponses: 10
    Dernier message: 02/12/2005, 16h28
  4. INSERTION / tri ascendant ou descendant, ou mettre a la fin
    Par oravelon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/08/2005, 11h15
  5. tri sur la xème colonne
    Par r-zo dans le forum Langage SQL
    Réponses: 5
    Dernier message: 23/07/2003, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo