Rajouter un IF qui parcours un tableau
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:
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:
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.