Erreur lors d'affectation de formule

Y compris Power BI, Power Query et toute autre question en lien avec Excel
l
levince81
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 17 septembre 2019
Version d'Excel : Excel 365

Message par levince81 » 17 septembre 2019, 13:24

Capture1.JPG
Capture.JPG
Capture.JPG (19.25 Kio) Vu 44 fois
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 ? ::(
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'125
Appréciations reçues : 345
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 17 septembre 2019, 13:50

Bonjour et :bv3: 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)))"
:btres:
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
l
levince81
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 17 septembre 2019
Version d'Excel : Excel 365

Message par levince81 » 20 septembre 2019, 14:22

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.JPG
Avatar du membre
Ausecour
Passionné d'Excel
Passionné d'Excel
Messages : 3'125
Appréciations reçues : 345
Inscrit le : 31 mai 2018
Version d'Excel : 2010 FR, 2013 FR

Message par Ausecour » 20 septembre 2019, 14:28

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.
Plus un sujet a un titre précis, des explications claires, et un fichier Excel bien préparé, plus il a de chances d'avoir une réponse qui répond au besoin, mettez toutes les chances de votre côté :bien:
"100% des gagnants auront tenté leur chance" :trfl:
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message