Erreur lors d'affectation de formule

capture1 capture

Bonjour j'ai cette partie de code qui plante lorsque mon programme VBA passe dedans:

ActiveSheet.Cells(Target.Row, [Pourcentage].Column).Formula = "=SI(H" & Target.Row & "=0;0;E" & Target.Row & "+((H" & Target.Row & "/100)*(G" & Target.Row & "-E" & Target.Row & "+1)))"

Où [Pourcentage] est une cellule définie et existe dans ma feuille Excel .

J'ai l'erreur suivante :

Erreur d'exécution '1004':

Erreur définie par l'application ou par l'objet

Hors en debug, Target.row a la valeur 26 et [Pourcentage].Column a la valeur 88.

Est ce que quelqu'un a une idée ?

Bonjour et sur le forum,

La raison ne vient pas de tes paramètres, mais de la fonction que tu utilises, qui n'est pas reconnue en VBA.

En effet, si tu écris ta formule en activant l'enregistreur de macro, tu ne verras pas la fonction SI, mais la fonction IF, en VBA, que ce soit avec worksheets.function, ou avec les Range.formula, les noms des fonctions que tu utilises doivent être donnés en anglais.

ActiveSheet.Cells(Target.Row, [Pourcentage].Column).Formula = "=SI(H" & Target.Row & "=0;0;E" & Target.Row & "+((H" & Target.Row & "/100)*(G" & Target.Row & "-E" & Target.Row & "+1)))"

doit donc s'écrire:

ActiveSheet.Cells(Target.Row, [Pourcentage].Column).Formula = "=IF(H" & Target.Row & "=0;0;E" & Target.Row & "+((H" & Target.Row & "/100)*(G" & Target.Row & "-E" & Target.Row & "+1)))"

Bonjour et merci pour votre réponse.

Cependant j'a toujours le même problème. Et même plus si j'alimente ma cellule avec le texte en anglais pour la formule, alors j'ai le message :" #VALEUR".

Ligne = 24

Colonne = 66

Formule = =SI(H24=01/01/1900;0;E24+((H24/100)*(G24-E24+1)))

sinon j'ai retouché mon code pour avoir accès à toutes les valeurs et je ne comprends vraiment pas le problème.

capture

Bonjour,

Est-ce que la formule sans passer par VBA fonctionne? parce que quand je vois:

H24 = 01/01/1900, ça veut dire H24=1/1/1900 -> H24 = 1/1900, si tu veux la date, il faut passer par: DATEVAL("01/01/1900"), ou mettre 1 qui est la valeur numérique de la date 1/1/1900.

Rechercher des sujets similaires à "erreur lors affectation formule"