Remplacer pour Activecell

2 réponses
Avatar
denys59.p
Bonjour =C3=A0 tous,

Dans le code suivant, comment remplacer J21 par Active cell ?

Sub AjoutTotal()
Dim Cell As Range
derli =3D Cells(Rows.Count, "I").End(xlUp).Row
Columns("J:J").Select
Selection.Find(What:=3D"MTL", After:=3DActiveCell, LookIn:=3DxlValu=
es _
, LookAt:=3DxlWhole, SearchOrder:=3DxlByRows, SearchDirection:=3Dxl=
Next, _
MatchCase:=3DFalse, SearchFormat:=3DFalse).Offset(1, 0).Select

'Ici je trouve la cellule contenant les lettres MTL (il n'y en a qu'une) =
et je choisis la cellule qui est dans la ligne en dessous. Je voudrais que =
le code qui suit soit:

Range("J..activecell:J" & derli) etc.... =20


For Each Cell In Range("J21:J" & derli)
Cell.Formula =3D "=3DF21 + G21"
Activecell.Select
Selection.AutoFill Destination:=3DRange("J21:J" & derli)
Next
etc.......

End sub

Auriez-vous une id=C3=A9e ?=20

Merci

Denys

2 réponses

Avatar
denys59.p
Bonjour Denis,
Excellent, merci... Voici ce que c'est devenu
For Each C In Range(Cells(ActiveCell.Row, ActiveCell.Column), _
Cells(derli, ActiveCell.Column))
C.FormulaR1C1 = "=RC[-4]+RC[-3]"
Next
Ca fonctionne comme un charme !!!
Merci beaucoup
Denys
Avatar
Michd
Une autre manière de procéder afin d'éviter la boucle si la plage est
importante :
'-----------------------------
Dim DerLig As Long, C As Range, Rg As Range
DerLig = 50 'Une valeur pour les besoins de la démontration.
Set Rg = Range(Cells(ActiveCell.Row, ActiveCell.Column), _
Cells(DerLig, ActiveCell.Column))
Rg.Formula = "=Sum(" & Rg(1).Offset(-4).Address(0, 0) & _
"+" & Rg(1).Offset(-3).Address(0, 0) & ")"
'-----------------------------
MichD