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 :

classement alphabétique rajout de colonnes [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 137
    Par défaut classement alphabétique rajout de colonnes
    bonjour

    comment classer alphabétiquement plusieurs colonnes séparément en partant de ce code

    qui marche pour une seule merci

    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 alphabetique()
    '
    ' classement alphabetique feuille list
    '
     
    '
        Range("a2:a14").Select
        ActiveWorkbook.Worksheets("List").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("List").Sort.SortFields.Add Key:=Range("a2:a25"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("List").Sort
            .SetRange Range("a2:a25")
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub alphabetique()
        ActiveWorkbook.Worksheets("List").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("List").Sort.SortFields.Add Key:=Range("a2:a25"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("List").Sort
            .SetRange Range("a2:a25")
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
    Ici le code marche pour les cellules A2 à A25, car on lui indique de le faire pour les cellules A2 à A25. Pour effectuer le même type d'opération sur d'autres cellules, il faut lui indiquer qu'on veut le faire sur d'autres cellules.
    A toi d'adapter avec les bonnes cellules

  3. #3
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 137
    Par défaut
    je c ou mettre le b2:b7 mais pas quoi mettre??? marche pas

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Citation Envoyé par exelan Voir le message
    je c ou mettre le b2:b7 mais pas quoi mettre??? marche pas
    C'est pas très clair ta phrase là ....
    Tu me dis que tu sais où mettre B2:B7, mais tu ne sais pas quoi mettre, or tu viens juste de dire que tu mettais B2:B7, donc tu sais quoi mettre ?!
    "Marche pas" : OK et ... En quoi ça ne marche pas? Est-ce que tu as un message d'erreur? Si oui, lequel et où? Est-ce que ton code tourne, mais ne fait pas ce que tu veux? Que fait-il de différent par rapport à ce que tu veux?
    Ton but, c'est bien d'utiliser ta méthode "alphabetique" pas seulement pour la colonne A, mais pour plusieurs colonnes?
    Tu peux, par exemple, faire une méthode qui prend en argument le nom de la plage à trier, puis appeler cette méthode avec les différentes plages à traiter :
    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
    Sub alphabetique(plageCellule As String)
        ActiveWorkbook.Worksheets("List").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("List").Sort.SortFields.Add Key:=Range(plageCellule), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("List").Sort
            .SetRange Range(plageCellule)
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
     
    Sub trierTout()
        Call alphabetique("A2:A25")
        Call alphabetique("B2:B7")
    End Sub
    Comprends tu ce que je fais ici?
    Est-ce que les différentes plages à traiter son connues? Est-ce qu'on connait à l'avance précisemment le nombre de lignes par colonne?

  5. #5
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 137
    Par défaut
    je vien de rentrer ton code marche pas me dit

    argument non facultatif

    quand je dit : je c ou mettre le b2:b7 mais pas quoi mettre??? marche pas

    ca veut dire que je c la selection de b2 a b7 mais je c pas quoi mettre pour que ca fonctionne

    alors effectivement g plusieurs colonnes a2 a27 , b2 b7 et c2 c7 qui doit marcher avec d2 d7 (d = des chiffres qui suives le c )

    exemple : en c5 compte divers = d5 12000

    les 12000 doivent etre a coter du compte divers

  6. #6
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Tes explications ne sont pas très claires. Déjà sur d'autres de tes postes sur le forum j'avais du mal à te comprendre. Si tu veux qu'on t'aide, il faut que tu fasses des efforts dans la présentation de ton problème.
    Le code que je te fourni marche sans soucis chez moi. As-tu bien une feuille nommée List? Est-ce que tu as bien tout écrit, notamment les paramètres quand tu appelles la méthode alphabetique?

  7. #7
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 137
    Par défaut
    dsl

    je reprend

    ma feuille s appelle "List"

    dans cette "List" g 4 colonnes

    a2:a27

    b2:b7

    et c2:c7 qui est jumeler avec d2:d7

    g mis un bouton " classement alphabetique " qui une fois actionner doit

    classer :

    a2:a27

    b2:b7

    c2:c7 / d2:d7

    pour c2:c7 / d2:d7 c juste c2:c7 qui ce classe alphabétique

    pour d2:d7 doit suivre c2:c7

    exemple : colonne c "les p" /colonne d "les montants"

    avant classement

    p3 3 000,00 €
    p5 5 000,00 €
    p2 2 000,00 €
    p4 4 000,00 €
    p1 1 000,00 €

    après classement
    p1 1 000,00 €
    p2 2 000,00 €
    p3 3 000,00 €
    p4 4 000,00 €
    p5 5 000,00 €

    espere etre assez clair pour toi

    pour ton code qui marche chez toi je l ai juste copier pour tester chez moi : "argument non facultatif "

    et je vois pas ce qui faut mettre pour que ca fonctionne !!!

  8. #8
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Voilà ce que j'obtiens avec l'enregistreur de macro et après adaptation :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Sub Macro1()
    '
    'Tri de la colonne A
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A2"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("A2:A27")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
     
    'Tri de la colonne B
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B2"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("B2:B7")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
     
    'Tri de la colonne C, D "suivant" la colonne C
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("C2"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("C2:D7")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
    Ceci marche très bien chez mois
    Je ne peux pas beaucoup plus t'aider ...

  9. #9
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 137
    Par défaut
    ben voila quand tu veux

    g juste changer list a la place de feuille1 et c bon

    un grand merci a toi !!

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

Discussions similaires

  1. Rajouter une colonne dans une datagrid
    Par bejaad dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/08/2007, 10h32
  2. Réponses: 8
    Dernier message: 26/07/2007, 11h46
  3. Rajouter une colonne dans un select *
    Par phb07 dans le forum Oracle
    Réponses: 5
    Dernier message: 30/03/2007, 12h51
  4. Réponses: 2
    Dernier message: 26/10/2006, 09h47
  5. fonction Average dans un tableau ou on rajoute des colonnes
    Par Huubb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/09/2006, 17h43

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