Bonsoir Gérard, Michael, Le Forum
Une autre approche 100% VBA sans passer par Formule :
Sub AdditionVba()
Dim Cell As Range
Dim MyVal As Double
For Each Cell In Sheets("Feuil1").Range("A1
1")
MyVal = MyVal + Cell + Cell.Offset(1, 0)
Cell.Offset(2, 0) = MyVal
MyVal = 0
Next
End Sub
Sinon on peut aussi faire par Formules écrites par VBA comme ceci :
Sub FormulaVba()
Dim i As Byte
For i = 1 To 4 '(Colonne de A à D)
Cells(3, i).Formula = "=SUM(" & Cells(1, i).Address & ":" & Cells(2, i).Address & ")"
Next
End Sub
Et pour mon ami Gérard, regarde ta macro sans Select :
Sub add()
With Range("A3")
.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
.AutoFill Destination:=Range("A3
3")
End With
With Range("A3
3")
.Copy
.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End With
Range("A1").Select 'sauf celui là !!
End Sub
Du coup il n'a plus vraiment besoin de Application.ScreenUpdating = False...
Si tu vois les "vieux" fils de discussion, tu verras qu'ils y en a pas mal à qui j'ai fait la "guerre" aux Selects... Mais je crois qu'ils sont contents depuis !
Bonne Soirée
@+Thierry