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 :

Besoin d'aide sur le tri d'un fichier Excel en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Par défaut Besoin d'aide sur le tri d'un fichier Excel en VBA
    Bonsoir
    je débute avec les macro Excel et mon besoin doit être si simple que je n'ai pas trouvé la solution......
    Dans mon classeur, dans l'onglet Fournisseurs j'ai 10 colonnes de A à J et je souhaite organiser ma page par le tri de la 1er colonne nommé "Fournisseur" en A1
    Merci pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    L'utilisation toute bête de l'enregistreur de macro te permettra de connaître ce code ...
    A lire :
    http://fauconnier.developpez.com/tut...istreur-macro/

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Par défaut
    Bonsoir
    J'ai essayé mais le problème est que chaque jour j'ajoute des lignes et la macro doit déterminer la fin de ma colonne A pour lancet le tri

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    J'ai essayé mais le problème est que chaque jour j'ajoute des lignes et la macro doit déterminer la fin de ma colonne A pour lancet le tri
    Oui ? Et alors ?
    L'enregistreur de macros te montre le code à écrire.
    Ce code est ensuite à adapter pour coller très exactement à ta situation.
    Montre le code obtenu par l'enregistreur de macros, déjà ...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Par défaut
    'Merci pour ton aide Le problème c'est comment définir la dernière ligne et non A2395


    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
    Sub Tri_Données_Fournisseur()
    '
    ' Tri_Données_Fournisseur Macro
     
     
    '
        Range("A2").Select
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A2:A2395" _
            ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("A1:J2395")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Le problème c'est comment définir la dernière ligne et non A2395
    Si tel est finalement ton unique problème résiduel --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & rows.count).end(xlup).row
    est le rang de la dernière ligne remplie de la colonne A

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Par défaut
    J'ai un message d'erreur, je dois mal positionner Range("A" & Rows.Count).End(xlUp).Row.


    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
    Sub Macro27()
    '
    ' Macro27 Macro
    '
     
    '
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A" & Rows.Count).End(xlUp), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("A" & Rows.Count).End(xlUp).Row
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Est-il vraiment si difficile de comprendre que :

    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
    Quand même ! il ne s'agit là que de concaténation d'éléments d'une chaîne de caractères (ce qu'est une adresse) !
    Hmmm ...

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par unparia Voir le message
    Est-il vraiment si difficile de comprendre que :

    devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
    Ou, encore mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2", Range("A" & Rows.Count).End(xlUp))
    Dans mon classeur, dans l'onglet Fournisseurs j'ai 10 colonnes de A à J et je souhaite organiser ma page par le tri de la 1er colonne nommé "Fournisseur" en A1
    En VBA, il y a deux méthodes pour faire un tri :
    Par Range : https://msdn.microsoft.com/library/e...ice.15%29.aspx

    Par Worksheet :
    https://msdn.microsoft.com/library/2...ice.15%29.aspx
    https://msdn.microsoft.com/fr-fr/library/ff821877.aspx

    La première correspond à ce qui se faisait dans Excel 2007 et précédents, avec 3 critères maximum. Elle est plus simple mais offre moins de possibilités.
    La seconde correspond à la façon de faire des tris dans les Excel récent. Elle permet de faire plus de chose mais est plus complexe à gérer.

    Comme tu n'as qu'un seul critère, je te conseille de t'orienter vers la première.

Discussions similaires

  1. [XL-2010] Besoin d'aide sur le tri automatique de 2 colonnes
    Par TheHighFlying dans le forum Excel
    Réponses: 10
    Dernier message: 23/11/2012, 09h22
  2. [XL-2007] Aide sur l'envoi d'une feuille excel avec vba
    Par MelanieK dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2012, 21h51
  3. besoin d'aide sur tri shell
    Par eaglevmt-4 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 30/12/2008, 17h35
  4. Réponses: 6
    Dernier message: 16/02/2008, 21h53
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

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