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 en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut Tri en VBA
    Bonjour,
    je ne suis pas experte en VBA et je dois trier des colonnes par ordre alphabetique ou par date.
    Voici mon code qui ne marche qu'une fois sur 2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton2_Click()
     
         Selection.Sort Key1:=Range("H9"), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
     
    End Sub
    Qu'est-ce qui ne marche pas?
    Merci de m'aider...

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde , je donne une solution qui fonctionne.
    Ceci dit, il me semble avoir vu passer une réponse de SikyRoad qui évite le changement et le rétablissement du format de date de la colonne... J'ai bien dit, il me semble.
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    Salut miss !!!

    Et oui je suis inscrit sur ce forum...
    Pour ton tri je te conseil pour les dates de changer le type de cellule en passant en standard ce qui te donnera un chiffre a ralonge (pour plus d'info envoie moi un mail). Tu pourra alors les trier facilement. A la fin de ta sub, il ne te reste plus qu a repasser en format date pour ta cellule.
    Pour les noms, il faut travailler caractère par caractère...

    Bon courage

    Lyo

  4. #4
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut
    ok les dates ca a l'air de marcher avec la solution de ouskel'n'or sauf que ca me deplace mes celulles en haut de la page...

    Comment on fait pour travailler "caracterre par caractere"??

    merci!!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    j'y travaille. Je posterai la réponse sur le forum et je te l envoi par mail

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par riny8669 Voir le message
    ok les dates ca a l'air de marcher avec la solution de ouskel'n'or sauf que ca me deplace mes celulles en haut de la page...

    Comment on fait pour travailler "caracterre par caractere"??

    merci!!
    Qu'entens-tu par "ça me déplace les cellules en haut de la page ? Tu veux dire que ton tableau démarre "ailleurs" que sur la ligne 1 ?
    Si c'est ça, et si aucune ligne ni colonne de ta plage de cellule n'est entièrement vide, à la place de "Cells.sort...", tu désignes ta plage en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(NoLigne, NoCol).currentRegion.sort...
    où NoLigne est la première ligne de ta plage et Nocol la première colonne de ta plage.
    N'oublie pas que mon code fonctionne avec une ligne d'en-tête (dans l'URL que je t'ai passée tu as l'explication)
    Tu dis
    A+

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Edit
    J'ai ajouté ici le code qui prend en compte une plage ne commençant pas sur la première ligne ni sur la première colonne. Tu peux y jeter un oeil

  8. #8
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut
    Super! Merci beaucoup, ca marche sur ma petite feuille excel que j'ai utilise pour simplifier les essais, je dois maintenant transferer ce code sur ma feuille excel avec toutes mes donnees...Pourvu que ca marche!!

    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub CommandButton2_Click()
     'tri des dates
     
     Range("E18:E31").Select
     
        Selection.NumberFormat = "General"
        DoEvents
        Cells(18, "E").CurrentRegion.Select
           Selection.Sort Key1:=Range("E18"), Order1:=xlAscending, Header:=xlYes, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
     
        DoEvents
        Columns("E:E").Select
        Selection.NumberFormat = "dd/mm/yyyy"
     
     
    End Sub
     
    Private Sub CommandButton3_Click()
    'tri des pays
     
    Cells(18, "E").CurrentRegion.Select
    Selection.Sort Key1:=Range("F18"), Order1:=xlAscending, Header:=xlYes, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
     
    End Sub

Discussions similaires

  1. Tri sous VBA
    Par bigmousse69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/02/2010, 19h26
  2. [XL-2003] Rafraichissement de tri en vba
    Par dzeus dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 26/10/2009, 11h47
  3. Fonction Tri Excel VBA
    Par Nako_lito dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/08/2009, 16h15
  4. tri sql/vba dans formulaire ACCESS
    Par seb_thiery dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 13/08/2008, 13h30
  5. [VBA-E] tri sur VBA pour Excel
    Par mariedrouin dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 21/05/2006, 13h32

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