Pb ecriture formule dans cellule
j
Bonjour,
je souhaiterais :
- mettre en AF13 la formule suivante : =SI(P13=1;I13;SI(P13=2;I14;SI(P13=3;I15;SI(P13=4;I16))))
- mettre en AF14 la formule suivante :=SI(Q13=1;I13;SI(Q13=2;I14;SI(Q13=3;I15;SI(Q13=4;I16))))
- mettre en AF15 la formule suivante : =SI(R13=1;I13;SI(R13=2;I14;SI(R13=3;I15;SI(R13=4;I16))))
- mettre en AF16 la formule suivante : =SI(S13=1;I13;SI(S13=2;I14;SI(S13=3;I15;SI(S13=4;I16))))
J'ai donc tenté de définir un array avec = (P, Q, R, S) et d'écrire la formule en vba :
Sub formule()
Dim ligne As Integer
Dim colonne As string
Dim i As Byte
colonne = ActiveCell.Column
produit = Array("P", "Q", "R", "S")
For ligne = 13 To 16
For i = 0 To UBound(produit, 1)
Range(colonne, ligne).FormulaLocal = "=SI("&produit(i)&ligne&"=1;I"&ligne&";SI("&produit(i)&ligne&"=2;I"&ligne+1&";SI("&produit(i)&ligne&"=3;I"&ligne+2&";SI("&produit(i)&ligne&"=4;I"&ligne+3))))
Next i
Next ligne
End Sub
cela ne marche pas, pouvez vous m'indiquer l'erreur ?
merci beaucoup,
jasserin
Bonjour
Je n'ai pas voulu chercher l'erreur
Une macro pour inscrire tes formules
Sub formule()
Dim Colonnes
Dim I As Integer
Colonnes = Array("P", "Q", "R", "S")
For I = 0 To UBound(Colonnes)
Cells(13 + I, "AF").Formula = "=IF(" & Cells(13, Colonnes(I)).Address(rowabsolute:=False, columnabsolute:=False) & _
"=1,I13,IF(" & Cells(13, Colonnes(I)).Address(rowabsolute:=False, columnabsolute:=False) & _
"=2,I14,IF(" & Cells(13, Colonnes(I)).Address(rowabsolute:=False, columnabsolute:=False) & _
"=3,I15,IF(" & Cells(13, Colonnes(I)).Address(rowabsolute:=False, columnabsolute:=False) & "=4,I16))))"
Next I
End SubUne version simplifiée
Sub formuleBis()
Dim Colonnes
Dim I As Integer
Colonnes = Array("P13", "Q13", "R13", "S13")
For I = 0 To UBound(Colonnes)
Cells(13 + I, "AF").Formula = "=IF(" & Colonnes(I) & _
"=1,I13,IF(" & Colonnes(I) & _
"=2,I14,IF(" & Colonnes(I) & _
"=3,I15,IF(" & Colonnes(I) & "=4,I16))))"
Next I
End Sub