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 :

Référence de Tri non valide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut Référence de Tri non valide
    Bonjour à vous,

    J'ai parcouru plusieurs fils relatifs à la fonction "synthèse + tri" de plusieurs pages pour constituer un code visant à :

    - sélectionner 15 pages identifiées de mon fichier
    - copier les lignes renseignées de chacune de ces pages
    - les réunir dans une page de synthèse
    - les classer par ordre décroissant selon un indicateur situé en colonne G

    voici où j'en suis:

    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
    Private Sub CHierarchisation_Click()
     
     With Sheets("PLANACTION")
       .Range("A9:O65536").Delete
       For Each Sh In Sheets
         Select Case Sh.Name
           Case "ADMINISTRATIF", "COLLECTEDECHETS", "DDD", "ESPACESVERTS", "GYPSE", "HAUTEPRESSION", "HOSPITALIER", "HÔTELLERIE", "INDUSTRIE", "INTERHAUTEUR", "LOGISTIQUE", "MECANISE", "NETTOYAGE", "SANITAIRES", "TUNNEL", "VITRERIE"
           For lg = 9 To Sh.Range("A" & Rows.Count).End(xlUp).Row
               LgS = .UsedRange.Rows.Count + 1
               .Cells(LgS, 1) = Sh.Cells(lg, 18)
               .Cells(LgS, 2) = Sh.Cells(lg, 6)
               .Cells(LgS, 3) = Sh.Cells(lg, 5)
               .Cells(LgS, 4) = Sh.Cells(lg, 11)
               .Cells(LgS, 5) = Sh.Cells(lg, 12)
               .Cells(LgS, 6) = Sh.Cells(lg, 14)
               .Cells(LgS, 7) = Sh.Cells(lg, 17)
           Next
     
           Case Else
     
         End Select
       Next
     
    .Range("A9:O65536").CurrentRegion.Sort key1:=Range("G9"), Order1:=xlDescending, Header:= _
            xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
     
     End With
     
    Sheets("PLANACTION").Activate
    Unload FIDENTIFICATION
    Unload FSECTORISATION
    Unload FMAÎTRISE
    Unload FPLANACTION
     End Sub
    à l'issue:

    - le tri se fait partiellement : les valeurs en colonne G ne sont pas forcément reconnues et certaines refusent de se laisser classer

    - Erreur d'exécution '1004' : Référence de Tri non valide concernant la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      DataOption1:=xlSortNormal
    Je dois rendre ce document.. hier ...

    si une bonne âme avait le cœur de m'indiquer mes erreurs!

    Merci!

  2. #2
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Juin 2017
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2017
    Messages : 261
    Par défaut
    Après utilisation de l'enregistreur de Macros - bien plus futé que moi soit dit en passant - ma fonction de tri fonctionne parfaitement... une fois sur 2!

    au premier essai, , nickel, tri en colonne G depuis G9 avec sélection étendue, au second essai, je retrouve les lignes collectées précédemment tout en bas du tableau (ligne 65537) dans l'ordre de la "collecte", non triée!

    ma nouvelle macro:

    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
     
     With Sheets("PLANACTION")
       .Range("A9:O65536").Delete
       For Each Sh In Sheets
         Select Case Sh.Name
           Case "ADMINISTRATIF", "COLLECTEDECHETS", "DDD", "ESPACESVERTS", "GYPSE", "HAUTEPRESSION", "HOSPITALIER", "HÔTELLERIE", "INDUSTRIE", "INTERHAUTEUR", "LOGISTIQUE", "MECANISE", "NETTOYAGE", "SANITAIRES", "TUNNEL", "VITRERIE"
           For lg = 9 To Sh.Range("A" & Rows.Count).End(xlUp).Row
               LgS = .UsedRange.Rows.Count + 1
               .Cells(LgS, 1) = Sh.Cells(lg, 18)
               .Cells(LgS, 2) = Sh.Cells(lg, 6)
               .Cells(LgS, 3) = Sh.Cells(lg, 5)
               .Cells(LgS, 4) = CInt(Sh.Cells(lg, 11))
               .Cells(LgS, 5) = CInt(Sh.Cells(lg, 12))
               .Cells(LgS, 6) = CInt(Sh.Cells(lg, 14))
               .Cells(LgS, 7) = CInt(Sh.Cells(lg, 17))
           Next
     
           Case Else
     
         End Select
       Next
     
     Rows("9:65536").Select
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("G9") _
            , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        With Worksheets("PLANACTION").Sort
            .SetRange Range("A9:R65536")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
     
     End With
    EDIT: en remplaçant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A9:O65536").Delete
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Rows("9:65536". Delete)
    ça fonctionne systématiquement... ???

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

Discussions similaires

  1. [XL-2010] référence de tri non valide
    Par bboy-eazy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/01/2015, 15h46
  2. [XL-2007] Référence non valide - TCD et plage dynamique
    Par Carambar dans le forum Excel
    Réponses: 4
    Dernier message: 11/10/2011, 07h16
  3. [XL-2007] Référence Externe Non-Valide
    Par argoet dans le forum Excel
    Réponses: 3
    Dernier message: 29/01/2010, 09h54
  4. Exécuter un test sur le message d'erreur "référence non valide"
    Par frisou65 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/08/2008, 09h50
  5. Référence d'une expression visible non valide
    Par kapotocho dans le forum Modélisation
    Réponses: 3
    Dernier message: 16/05/2008, 09h36

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