Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier une formule vers le bas dans une macro

2 réponses
Avatar
MEB
Bonjour,

J'ai enregistr=E9 une macro =E0 l'aide de l'enregistreur et je cherche un
code qui me permettrait de copier une formule vers le bas mais jusqu'=E0
la fin des donn=E9es et non jusqu'=E0 la fin d'un nombre de ligne inutile.


Voici une partie de ma macro
...
Range("E3").Select
ActiveCell.FormulaR1C1 =3D "=3DR[31437]C[-1]"
Range("E3").Select
ActiveCell.FormulaR1C1 =3D "=3DRC[-1]/1440"
Range("E3").Select
Selection.AutoFill Destination:=3DRange("E3:E128")
Range("E3:E128").Select
...

Lorsque j'ai cr=E9=E9 ma macro, le rapport avait 128 lignes mais selon le
rapport =E0 partir duquel j'ex=E9cute ma macro il n'y aura pas toujours
128 lignes des fois plus et des fois moins de 128 lignes et comme
j'ai cr=E9=E9 la copie de cette formule vers le bas en double cliquant sur
la fl=E8che du coin inf=E9rieur droit de la cellule elle tiens compte des
donn=E9es que j'avais lors de la cr=E9ation de la macro et non du nombre
de lignes que j'ai en r=E9alit=E9.

Avez-vous une solution pour moi.

Merci beaucoup

2 réponses

Avatar
MichD
Bonjour,

Cet exemple utilise la "Feuil1" et la colonne D pour établir la dernière ligne
occupée et pour définir jusqu'où la colonne des formules devra être copiée...
à toi d'adapter les variables.

'-----------------------------------------
Sub test()
Dim DerLig As Long
With Worksheets("Feuil1")
.Range("E3").FormulaR1C1 = "=R[31437]C[-1]"
DerLig = .Range("D65536").End(xlUp).Row
.Range("E3:E" & DerLig).FillDown
End With
End Sub
'-----------------------------------------


MichD
--------------------------------------------
"MEB" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai enregistré une macro à l'aide de l'enregistreur et je cherche un
code qui me permettrait de copier une formule vers le bas mais jusqu'à
la fin des données et non jusqu'à la fin d'un nombre de ligne inutile.


Voici une partie de ma macro
...
Range("E3").Select
ActiveCell.FormulaR1C1 = "=R[31437]C[-1]"
Range("E3").Select
ActiveCell.FormulaR1C1 = "=RC[-1]/1440"
Range("E3").Select
Selection.AutoFill Destination:=Range("E3:E128")
Range("E3:E128").Select
...

Lorsque j'ai créé ma macro, le rapport avait 128 lignes mais selon le
rapport à partir duquel j'exécute ma macro il n'y aura pas toujours
128 lignes des fois plus et des fois moins de 128 lignes et comme
j'ai créé la copie de cette formule vers le bas en double cliquant sur
la flèche du coin inférieur droit de la cellule elle tiens compte des
données que j'avais lors de la création de la macro et non du nombre
de lignes que j'ai en réalité.

Avez-vous une solution pour moi.

Merci beaucoup
Avatar
MichD
Tu peux utiliser aussi ceci :


Sub test()
Dim DerLig As Long
With Worksheets("Feuil1")
DerLig = .Range("D65536").End(xlUp).Row
.Range("E3:E" & DerLig).FormulaR1C1 = "=R[31437]C[-1]"
End With
End Sub



MichD
--------------------------------------------