Incrémentation de formile en VBA

Bonjour à tous,

J'ai une macro qui me retourne une "Erreur d'exécution '1004': la méthode AutoFill de la classe range à échoué". Cette macro à pour but de copier sur toute la colonne tant que la cellule de la colonne A n’est pas vide la formule créée.

DernLigne = Range("A" & Rows.Count).End(xlUp).Row

' Insertion de la colonne J et création en tête.

    Columns("J:J").Select

    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

    Range("J1").Select

    ActiveCell.FormulaR1C1 = "Rep. Origine" ' Nom de la colonne.

' Création formule répertoire d'origine.

    Range("J2").Select

    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC2,Données!R4C2:R7C5,2,FALSE)"

    Selection.Copy

    Range("J2").AutoFill Destination:=Range("J2:I" & DernLigne)

Pouvez-vous m’aider.

D’avance merci.

Mistral

7 réponses

  1. Bonjour,

    Si la formule est bonne teste ceci

    Dim F As string
        F = "=VLOOKUP(RC2,Données!R4C2:R7C5,2,FALSE)"
        Range("J2").Formula = F
        Range("J2").AutoFill Destination:=Range("J2:I" & Range("A" & Rows.Count).End(xlUp).Row), Type:=xlFillDefault
    0
    1. Bonjour,

      Juste au passage, votre code crée, entre autre, la formule, =RECHERCHEV($B3;Données!$B$4:$E$7;2;FAUX)

      et la génère sur la plage selon la valeur de la dernière ligne non vide en colonne A et c'est tout... ! Sans provoquer de message d'erreur.


      0
      1. Bonsoir à vous deux et merci pour vos réponses ...

        La proposition M-12 fonctionne puisque la formule est bien copier dans la bon colonne tant que la colonne A n'est pas vide mais le résultat de la formule ne s'affiche pas. Pourquoi ?????

        Le Pingou:

        Oui c'est exactement ça.

        0
        1. Bonjour,

          Sans voir les données pas possibles de voir ou est le problème...!

          Note: j'ai essayé de construire un fichier selon La formule et tout fonctionne correctement, les résultats s'affichent!


          0
          1. Je viens de déposer un classeur test, voici le lien

            https://www.cjoint.com/c/LLcqT2mzTN7

            J'ai créé un formule toute bete si A est vide J est vide sinon OK.

            Le formule est bien incrémentée jusqu'à la dernier ligne de la colonne A, mais je n'ai pas le résultat ???

            0
            1. Bonjour,

              La ligne de code à corriger:

               F = "=IF(RC1="""","""",""OK"")" 'Formule pour le test
              
              doit être:
              
               F = "=IF($A2="""","""",""OK"")" 'Formule pour le test

              0
              1. Mille merci à toi ça marche ...

                Bonne soirée

                Mistral

                0