Incrémentation de formile en VBA
Mistral_13200 Messages postés 649 Statut Membre -
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
-
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 -
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.
-
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.
-
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!
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 ???
-
Bonjour,
La ligne de code à corriger:
F = "=IF(RC1="""","""",""OK"")" 'Formule pour le test doit être: F = "=IF($A2="""","""",""OK"")" 'Formule pour le test
-
Mille merci à toi ça marche ...
Bonne soirée
Mistral