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 d'exécution 1004 sur la méthode Autofill [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Erreur d'exécution 1004 sur la méthode Autofill
    Bonjour,
    Je suis débutant en VBA et je dois déboguer une macro Excel... J'ai cherché dans tous les forums et tous les tutoriels que j'ai pu, mais il se peut que le sujet soit déjà abordé...
    J'utilise Excel 2002 et je n'ai jamais touché au visual basic...
    Tout d'abord le message d'erreur est le suivant :
    "Erreur d'exécution '1004' :
    La méthode AutoFill de la classe Range a échoué."
    Et lorsque je veux déboguer, je vois le morceau de macro suivant :
    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
    Sub DK_DN()
     
        Windows("res.txt").Activate
     
        test = Application.WorksheetFunction.CountA(Columns("A:A"))
     
        Range("D1").Select
        ActiveCell.FormulaR1C1 = "Da/DN"
        Range("D3").Select
        ActiveCell.FormulaR1C1 = "=(RC[-4]-R[-1]C[-4])/(RC[-5]-R[-1]C[-5])"
        Range("E3").Select
        Selection.AutoFill Destination:=Range("D3:D" & test)
        Range("D3:D" & test).Select
        Range("A1:D" & test).Select
    End Sub
    Avec "Selection.AutoFill Destination:=Range("D3" & test)" surligné.
    Mes questions sont les suivantes :
    Que signifie le message d'erreur ?
    Voyez-vous une erreur dans le code ?
    Sinon, savez-vous ce que signifie Autofill, ou à quoi ça sert ?
    Sinon, comprenez-vous ce que fait la macro?

    Et d'ailleurs, en passant, existerait-il un listing des commandes VBA pour Excel ?

    Merci d'avance pour votre aide,
    Pant'

  2. #2
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour,


    Et d'ailleur, en passant, existerais t'il un listing des commandes VBA pour Excel?
    Dans l'editeur VBA se mettre sur une commande et faire



    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
    Sub DK_DN()
     
        Windows("res.txt").Activate ' Active ce classeur
     
     
        test = Application.WorksheetFunction.CountA(Columns("A:A")) ' compte le nombre de cellules en colonne A
     
        Range("D1").Select ' Se'lectionne la cellule D1
        ActiveCell.FormulaR1C1 = "Da/DN" ' Place la formule dans la cellule
        Range("D3").Select ' selectionne la cellule D3
        ActiveCell.FormulaR1C1 = "=(RC[-4]-R[-1]C[-4])/(RC[-5]-R[-1]C[-5])" ' Place la formule dans la cellule
     
        Range("E3").Select ' selectionne la cellule E3
        Selection.AutoFill Destination:=Range("D3:D" & test) ' Recopie la formule de D3 jusqu'a D et la ligne dans test, attention ici car si test est inferieur à 3 tu as un plantage ! 
        Range("D3:D" & test).Select
        Range("A1:D" & test).Select
    End Sub
    Quelques liens

    http://silkyroad.developpez.com/VBA/DebuterMacros/

    http://silkyroad.developpez.com/VBA/LesVariables/

  3. #3
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Re,

    Les select sont souvent inutiles tu peux vérifier c'est dit de nombreuses fois sur les forums !


    Au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        test = Application.WorksheetFunction.CountA(Columns("A:A")) ' compte le nombre de cellules en colonne A
     
        Range("D1").Select ' Se'lectionne la cellule D1
        ActiveCell.FormulaR1C1 = "Da/DN" ' Place la formule dans la cellule
        Range("D3").Select ' selectionne la cellule D3
        ActiveCell.FormulaR1C1 = "=(RC[-4]-R[-1]C[-4])/(RC[-5]-R[-1]C[-5])" ' Place la formule dans la cellule
     
        Range("E3").Select ' selectionne la cellule E3
        Selection.AutoFill Destination:=Range("D3:D" & test) ' Recopie la formule de D3 jusqu'a D et la ligne dans test, attention ici car si test est inferieur à 3 tu as un plantage ! 
        Range("D3:D" & test).Select
        Range("A1:D" & test).Select


    Un exemple pour améliorer un peu le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    test = Application.WorksheetFunction.CountA(Columns("A:A")) ' compte le nombre de cellules en colonne A
     if test < 4 THEN
        EXIT SUB
    end IF
        Range("D1").FormulaR1C1 = "Da/DN" ' Place la formule dans la cellule
        Range("D3").FormulaR1C1 = "=(RC[-4]-R[-1]C[-4])/(RC[-5]-R[-1]C[-5])" ' Place la formule dans la cellule
        Range("E3").AutoFill Destination:=Range("D3:D" & test) ' Recopie la formule de D3 jusqu'a D et la ligne dans test, attention ici car si test est inferieur à 3 tu as un plantage ! 
        Range("A1:D" & test).Select ' Est-ce util de selectionner, si non on peux supprimer cette ligne

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Merci tout d'abord pour l'indication de F1 et les liens ^^

    Ensuite, merci pour ta proposition, cependant, ca ne change rien... j'ai la même erreur sauf que cette fois-ci, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("E3").AutoFill Destination:=Range("D3:D" & test)
    qui est surligné...

  5. #5
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    RE,


    Quelle est ta formule dans E3, et quelle est ta valeur de test au moment de l'execution ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    J'ai finalement résolu mon problème...
    Le soucis n'était pas test qui était bien supérieur à 3. En revanche, la formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=(RC[-4]-R[-1]C[-4])/(RC[-5]-R[-1]C[-5])"
    menait à des cellules vides et donc à une division par zéro, ce qui n'était pas très apprécié... j'ai donc recadrer la formule aux cellules qui vont bien et mon problème à été résolu...
    Merci en tout cas pour ton aide, sans toi, je n'aurais pas compris cette partie du code ^^!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/11/2014, 16h00
  2. [XL-2007] Erreur d'exécution 1004 La méthode Select de l'Objet Worksheet a échoué !
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 08/11/2013, 15h39
  3. Réponses: 6
    Dernier message: 08/01/2009, 11h06
  4. erreur 1004 sur une méthode select
    Par lollo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2008, 19h21
  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