Bonjour,
Il y a plusieurs soucis:
- La propriété Formula prend les formules en anglais. Si tu veux saisir ta formule en français sous VBA, il faut utiliser la propriété FormulaLocal.
- La formule doit commencer par un '=' absent ici.
- La formule doit ressembler à ce que tu aurais sous Excel et non à du code VBA: pas de Range("A1").value mais simplement A1 (en précisant le nom de la feuille si différent de la feuille où tu mets la formule; comme test!A1 par exemple).
Ex:
F5.Range("A" & i).FormulaLocal = "=SI(test!B3=0;..."
F4.range("B3").value:F4.range("B21").value
est à remplacer par si j'ai bien compris ce que tu voulais.
- Le caractère guillemet en VBA est représenté par un double guillemet "" dans une chaîne de texte VBA.
Ex pour comparer B1 à "toto":
F5.Range("A" & i).FormulaLocal = "B1 = ""toto"""
- Quand tu veux utiliser la valeur contenue dans tes variables e, p ou j, il ne faut pas mettre le caractère e, p ou j mais bien la variable.
Ainsi, ne fonctionnera pas mais
F5.Range("A" & i).Formula
si.
Reste à voir après si la formule est bonne et sa syntaxe ok; je n'ai pas vérifié.
Tu pourrais peut-être commencer par préparer un cas particulier de ta formule dans une case Excel et relire ensuite sa propriété Formula ou FormulaLocal sous VBA (via MsgBox ou Debug.Print) pour que tu vois à quoi ça doit ressembler (il te restera à insérer tes variables j, e et p pour passer du cas particulier à ton cas plus générique.
Partager