Bonjour,

J'essaye d’intégrer dans VBA la formule ci dessous :
=IF((Sheet1!B3)=0;" ";(Sheet2!C4*Sheet3!B$2/12))

le résultat s'affiche dans:
- la feuille "sheet3"
- les cellules "B8" a "C13"


Ci joint un exemple excel (plus révélateur qu'une tonne de description).

J'ai essaye de couper ma formule en 2.
Etape 1:
Faire un check pour voir les données égales a 0
Si j'en trouve je les copies dans "Sheet 3" dans les cellules de B8 a C13

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
'S1 est le range de "sheet1" (de B3 a C8)
 
For i = 1 To S1.Count
 
If S1.Cells(i, 1) = "0" Then
            S1.Cells(i, 1).Copy
            S3.Cells(i, 1).PasteSpecial xlPasteValues
End If
    Next i
Etape 2 (c'est la que ça coince):
Je regarde dans sheet 3 pour chaque cellule pas égale a 0, j'essaye de faire le calcul (Sheet2!C4*Sheet3!B$2/12).
Je ne suis pas vraiment sur comment gerer le $ dans la formule

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
'S2 est le range de sheet2 (C4 a D9)
'S3 est le range de sheet3 ou l on met le resultat (B8 a C13)
'S4 est le range de sheet3 (B2 a C4)
 
For Each Cell In S3
 
If S1.Cell(J, 1) <> "0" Then
Cell.Value = (S2.Cells(J, 1) * S4.Cells(J, 1) / 12))
 
End If
    Next Cell
Je pense que mon étape 2 n'est pas encore au point.

Si vous avez des suggestions ou conseils c'est avec grand plaisir que je les accepterai.

Merci d'avoir lu, et une excellente semaine.