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 :

Trier sur une plage de cellules variable [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut Trier sur une plage de cellules variable
    Bonjour à tous,
    Je sollicite votre aide pour savoir où mon code bug. Voilà, j’aimerai (en appuyant sur un bouton) trier une plage de cellule sauf que cette plage n’est pas toujours la même (il peut y avoir plus ou moins de lignes, le nombre de colonne lui reste le même).
    J’ai l’erreur suivante : 1004 Erreur définie par l’application ou par l’objet.
    Après plusieurs recherches sur le site je n’ai pas réussi à débloquer la situation.

    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
     
    Sub triertableau()
     
    Dim i As Integer
     
    For i = 4 To 300 Step 1
    Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("J" & i, "J" & i), SortOn:=xlSortOnValues, Order:=xlAscending
    Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("H" & i, "H" & i), SortOn:=xlSortOnValues, Order:=xlAscending
    Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("G" & i, "G" & i), SortOn:=xlSortOnValues, Order:=xlAscending
    Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("F" & i, "F" & i), SortOn:=xlSortOnValues, Order:=xlAscending
    Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("D" & i, "D" & i), SortOn:=xlSortOnValues, Order:=xlAscending
    With ActiveWorkbook.Worksheets("Feuil1").Sort
         .SetRange Range("A" & i, "O" & i)
         .Header = xlYes
         .MatchCase = False
         .Orientation = xlTopToBottom
         .SortMethod = xlPinYin
         .Apply
    End With
     
    Next i
     
    End Sub

  2. #2
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut
    Finalement voici ce que j’ai fait :
    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 triertableau()
    With Sheets("Feuil1")
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("J4:J1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("H4:H1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("G4:G1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
        .Sort.SortFields.Add Key:=Range("F4:F1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("D4:D1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With .Sort
                .SetRange Range("A4:O1000")
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
        End With
    End With
    End Sub
    Si quelqu'un à une autre solution elle est la bienvenue car trier sur des lignes sui n'existant pas c'est pas terrible.
    merci

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

Discussions similaires

  1. Selection d'une plage de cellules variables
    Par bykeman dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/06/2008, 10h20
  2. [DAO] SQL sur une plage de cellules
    Par cafeine dans le forum Contribuez
    Réponses: 8
    Dernier message: 01/03/2008, 22h47
  3. Comment creer un recordset ADO sur une plage de cellules
    Par JYL74 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2007, 09h36
  4. Sélectionner une plage de cellules variables pour faire un graphique?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/11/2007, 18h06
  5. appliquer une macro a une plage de cellule variable
    Par johndeuf dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2006, 16h18

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