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 :

Erreur 400 fonction de tri


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur agronome
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur agronome
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut Erreur 400 fonction de tri
    Bonjour à tous

    J'ai un problème avec une macro qui bug au niveau d'une ligne de tri des données.

    La code complet :
    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
    Sub Exctraction()
     
    Exploitation = InputBox("Entrer le numéro de l'exploitation pour laquelle vous voulez faire l'extraction :")
     
    Sheets.Add.Select
    ActiveSheet.Name = "Exploit n°" & Exploitation
    ActiveSheet.Move After:=Sheets(Sheets.Count)
     
    Sheets("Extraction coop 2013").Select
    Selection.AutoFilter Field:=8, Criteria1:=Exploitation
     
    Dim Lg%
    Lg = Range("A65536").End(xlUp).Row
    Range("a1:k" & Lg).Copy
     
    Sheets("Exploit n°" & Exploitation).Paste
     
    Sheets("Extraction coop 2013").Select
    Sheets("Extraction coop 2013").ShowAllData
    Selection.AutoFilter Field:=10, Criteria1:=Exploitation
     
    Dim Lg2%
    Lg2 = Range("A65536").End(xlUp).Row
    Range("a2:k" & Lg2).Copy
     
    Sheets("Exploit n°" & Exploitation).Select
     
    Dim Lg3%
    Lg3 = Sheets("Exploit n°" & Exploitation).Range("A65536").End(xlUp).Row + 1
     
    Sheets("Exploit n°" & Exploitation).Cells(Lg3, 1).Select
    ActiveSheet.Paste
     
    ActiveSheet.Range("A1").CurrentRegion.Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
     
    EndSub
    L’exécution de la ligne suivante engendre une erreur 400 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Je ne comprend pas d'où cela peut venir, d'autant plus que j'ai essayé d’exécuter ce bout de code indépendamment (c'est à dire que j'ai exécuter ma macro en enlevant la fonction sort à la fin, puis j'ai créer une autre macro avec seulement le sort) et ça marche très bien...


    Merci d'avance pour votre aide.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    C'est malin de trier A1 avec le key A2... comment veux tu trier une "SEULE CASE" avec une key qui ne lui appartient pas ?

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur agronome
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur agronome
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut
    Bonjour EngueEngue.

    Je ne comprend pas ta remarque, "ActiveSheet.Range("A1").CurrentRegion.Select" permet bien de sélectionner l'ensemble des cellules non-vides ? Donc je ne fais pas un tri sur une seule case, si?

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    En effet mal lu, après un test, chez moi cela fonctionne

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Cela me rassure, ne suis pas le seul aujourd'hui à avoir la tête dans le sac, même si moi c'était vraiment gros …


    Bonjour satane,

    évite le xlGuess, c'est soit oui soit non !

    Le mieux est d'effectuer ton tri manuellement en paramétrant bien les options en utilisant l'Enregistreur de macros …

  6. #6
    Membre du Club
    Femme Profil pro
    Ingénieur agronome
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur agronome
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut
    Bonjour Marc et merci pour ta réponse.

    Ce n'est pas le XlGuess qui faisait buguer mais je tiens compte de ta remarque

    Et donc en fait j'ai trouvé la solution. Ma macro globale sert donc a exporté des données d'une feuille jusqu'à une autre (et c'est sur cette 2ème feuille que je fais le tri), et toute la macro était enregistré sur la feuille d'où j'exporte les données. J'ai tout mis dans "ThisWorkbook" et c'est bon ça marche nickel.

    Ca marche c'est cool mais j'aimerais quand même comprendre parce que j'ai encore un peu de mal à gérer la différence entre Sheet, Workbook et Module dans l'éditeur de macro.
    Là dans mon cas il n'y a que le tri qui ne marchait pas alors qu'il y a d'autres bouts de macro qui ont une action sur cette même 2ème feuille et qui marchait. Je comprend pas trop...

    Si quelqu'un pouvait m'éclairé ce serait top. Merci !!

Discussions similaires

  1. [VBA] Erreur avec fonction Dcount
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 15/06/2006, 10h56
  2. Erreur de fonction
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/11/2005, 21h56
  3. Erreur de fonction
    Par Anduriel dans le forum Langage
    Réponses: 15
    Dernier message: 26/11/2005, 15h49
  4. fonction de tri par introspection
    Par ned-flanders dans le forum C++
    Réponses: 7
    Dernier message: 21/10/2004, 12h49
  5. Réponses: 2
    Dernier message: 08/04/2004, 17h30

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