Autofill de formules

[Résolu]
Signaler
Messages postés
8
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
15 novembre 2006
-
Messages postés
8
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
15 novembre 2006
-
salut
c'est une question plus que basique mais qui me pose quelques problèmes, à moi qui n'utilise qeu très raremetn VBA.

Je fais une petite macro pour remplir un tableau
la première cellule contient une formule (faisant référence aux cellules d'une autre colonne) que je veux étendre aux cellules suivantes de la colonne, seulement la dernière cellule de destination varie selon la longueur de la colonne de référence.

il faudrait juste que je puisse remplacer E19 par un cells(4,i) i variant selon les cas, dans : 
Selection.AutoFill Destination:=Range("E7:E19"), Type:=xlFillDefault

un idée ?
merci !

4 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Et un truc du genre Selection.AutoFill Destination:= Range("E7:E " & i ), Type: =xlFillDefault ne marcherais pas ?

Je maitrise pas trop vba moi non plus

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Salut !
Je pense que la solution de Casy est bonne, mais sinon, c'est plutot le genre de situation ou on va utiliser l'objet Cells :
Selection.AutoFill Destination:=Range(Cells(5, 7), Cells(5, i)), Type:=xlFillDefault

Personnellement ca me semble plus propre...

Julien.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Je pense aussi que la solution de Casy est la meilleure, mais si le
problème est de savoir la valeur de "i", il faut donc déterminer le
nombre de lignes.


'Chercher le nombre de lignes dans la colonne E

nbLignes = Columns("E:E").Find("*",Range("E1"),,,xlByRows, xlPrevious).Row

'Copie de la formule en indiquant la ligne de départ, ici 7

Range("x7:x" & nbLignes).Formula = "=E7"


Changer "x" par la lettre de la colonne dans laquelle tu veux insérer la formule
La formule va s'incrémenter toute seule...

MPi
Messages postés
8
Date d'inscription
lundi 15 décembre 2003
Statut
Membre
Dernière intervention
15 novembre 2006

merci pour vos soluces !
j'ai essayé la réponse de Casy et ça roule...
darta