Excel VBA copier formule lignes varient [Résolu/Fermé]

Signaler
-
 projekx -
Bonjour à tous,

Tout d'abord désolé si cette question à déjà été adressé, mais je n'ai rien pu trouver pour m'aider spécifiquement.

Alors mon but est de copier une formule qui se retrouve en première ligne et de la coller pour toutes mes données.
Je suis en mesure de le faire pour un nombre prédéfini, mais je n'arrive pas à le faire pour un nombre qui varie.

Donc j'ai trouvé comment compter le nombre de lignes que j'ai, mais sans être en mesure d'imputer ce nombre à l'endroit maximal ou je désire ma formules.

Voici le code que j'ai jusqu'à présent :

Sub Remove_format()
Range("AC1").Select
Range(Selection, Selection.End(xlDown)).Select
i = Selection.Rows.Count

'Format column AD into number style
Columns("AD:AE").Select
Selection.NumberFormat = "####"

'Input formula in cell AD2 & AE2
Range("AD2").Select
ActiveCell.FormulaR1C1 = _
"=IF(LEFT(R[-1]C[-1],1)=""8"",LEFT(R[-1]C[-1],4),IF(R[-1]C[-1]=""SVJAZACBAY1YYZ"",""Jazz"",IF(R[-1]C[-1] =""SVJAZACSTOREYUL"",""Jazz"",IF(R[-1]C[-1]=""SVYXUACJAZZCCHECK"",""Jazz"",IF(R[-1]C[-1]=""SVYYCACJAZZ"",""Jazz"",IF (RIGHT(R[-1]C[-1],6)=""STORES"",""Stores"",""""))))))"


Range("AE2").Select
ActiveCell.FormulaR1C1 = _
"=IF(LEFT(RC[-2],1)=""8"",VLOOKUP(RC[-1],Shops!C[-30]:C[-28],3,FALSE),RC[-1])"

'Copy paste the formula from AD2 to AD4000
Range("AD2:AE2").Select
Selection.AutoFill Destination:=Range("AD2:AE4000")

end sub

Alors j'aimerais remplacer mon 4000 par mon '' i ''.

Merci de votre aide.

Projekx

1 réponse

Bonjour,

Il suffit de remplacer
Selection.AutoFill Destination:=Range("AD2:AE4000")

par
Selection.AutoFill Destination:=Range("AD2:AE" & i)

ça devrait marcher.

A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Merci Amigo!

Une belle reponse en quelques minutes, alors que cela faisait plus d'une heure que je tournais en rond

Merci bcp!

Projekx