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 :

La méthode sort de la classe range a échoué


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 20
    Points
    20
    Par défaut La méthode sort de la classe range a échoué
    Bonjour,

    Je travaille sur un robot d'automatisation, et le langage utilisé est le java script façon robot d'automatisation.
    Je cherche a partir du robot d'automatisation de faire un tri dans un fichier Excel, je me connecte donc à Excel via COM, mais lorsque j'éxécute ma fonction de tri, j'ai le message d'erreur suivant "la méthode sort de la classe range a échoué."
    Voici ma fonction:

    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
    function trie()
    {
      var xlApp, xlFichier, xlFeuille, i;
      xlApp =   Sys.OleObject("Excel.Application"); 
      xlApp.Visible = true;
      xlApp.DisplayAlerts = false;
      xlFichier = xlApp.Workbooks.Open("C:\\Test\\Modelevalider.xls");
      xlFeuille = xlFichier.Sheets("Données brutes");
      xlFeuille.Activate;
      xlFeuille.range("E:E").Select;
      xlFeuille.Range("A1:M150").Sort(Key1=xlFeuille.Range("E1"), 
                                                               Order1="xlDescending",
                                                               Header="xlGuess",
                                                               OrderCustom= 1,
                                                               Orientation="xlTopToBottom",
                                                               DataOption1="xlSortNormal");
     
    }
    J'ai testé l'enregistrement de la macro lorsque j'effectue un tri manuel, et les paramètre renseigné sont identique à ceux se trouvant dans mon code, j'ai également vérifié que je me situai sur la bonne feuille excel.

    Quelqu'un aurait il une idée svp.

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Essaie comme ca peut etre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlFeuille.Range("A1:M150").Sort(Key1:=xlFeuille.Range("E1"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal);

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Salut Minick,

    Cette solution ne fonctionne pas non plus, j'ai déjà testé. Par compte j'ai réussi à avancer un peu plus, car il ne faut pas utiliser de chaine comme xlDescending mais les constantes représentant ces chaînes. Du coup maintenant sa me donne cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        xlFeuille.Range("A1:M150").Sort(xlFeuille.Columns("E"), 2, xlFeuille.Columns("F"), 2, xlFeuille.Columns("G"), 2 , 0, 1, 1, 1, 1 , 0);
    Et le message d'erreur que j'obtiens est : Référence non valide.

    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Je m'en doutais un peu (pour les constantes) mais je voulais essayer quand meme.

    Pour ton nouveau probleme tu ne peux pas mettre une colonne en cle de tri
    il faut une cellule.
    Essaie comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlFeuille.Range("A1:M150").Sort(xlFeuille.Range("E1"), 2, xlFeuille.Range("F1"), 2, xlFeuille.Range("G1"), 2 , 0, 1, 1, 1, 1 , 0);

Discussions similaires

  1. [XL-2007] méthode PastSpecial de la classe Range a échoué
    Par nico.exe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/02/2012, 13h27
  2. Réponses: 4
    Dernier message: 26/08/2010, 13h40
  3. La Méthode Activate de la classe Range a échoué
    Par Amiral19 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 06/07/2007, 14h46
  4. La méthode pastespecial de la classe range a échoué
    Par heyhey62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/07/2007, 17h52
  5. Réponses: 13
    Dernier message: 29/06/2007, 18h03

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