Bonjour tout le monde !
encore une fois, c'est un code de m**** qui me pose probleme, une fonction seule, simple, maitrisé en théorie, et avec pourtant rien de bien exceptionnel.
erreur d'execution -2147417848(80010108) - la methode "formulalocal" de l'objet "range" a échoué.
donc, temp est un string
cl est un long
cl est égal ici dans mon fichier a 6 (mais il pourrait avoir une autre valeur, évidement)
temp contient une formule, celle ci pointant sur une fonction perso.
elle est parfaitement rédigé, aux normes francaise.
temp = "=Percage(6.31;2)" (c'est ma fonction)
alors la, c'est a devenir chevre, se frapper la tete contre le sol, je sais plus quoi inventer.
j'ai tenté par dépit "6,31" au lieu du ".", cette valeur etant le résultat d'un calcul, donc a priori "directement aux bonnes normes" (-c'est du moins ce que je pensais-)
comme c'est le résultat d'une fonction, ce n'est pas la fonction que j'ai testé, mais seulement la formule telle quel dans une cellule vide.
sans surprise
=percage(6.31;2) => fonctionne
=percage(6,31;2) => erreure.
je n'ai pas cherché, donc, a modifier ma fonction source du "6.31"
j'ai tenté par dépis un "formula", avec des "," au lieux de ";" (chose simple a changer) => meme sanction
j'ai essayé avec un objet "range" au lieux de cells.
encore plus fort, dans ce cas, j'obtiens :
nouvelle erreure (faut varrier les plaisir) :
erreur d'exection 1004 : la methode 'range' de l'objet '_global' a échoué
au moins le numéro d'erreur est plus commun que "-2147417848(80010108)"
et peut etre que le soucis est bien le "range". mais en quoi il y a une gaffe dans cette facon de rédiger ?
je comprend plus rien, je craque.
a ce stade du code, il n'y a eue aucun select, et donc l'onglet courant est l'onglet appelant.
la fonction de calcul automatique est coupé le temps que la macro s'execute pour favoriser la rapidité d'execution du code,
la phrase qui plante est donc suivit normalement immédiatement d'un :
évidement, le code n'arrive jusque la.
toute aide sera .... plus que bienvenue !
cdlmt.
edit : ajout des balise "code". sorry pour ceux qui ont vu avant correction.
encore une fois, c'est un code de m**** qui me pose probleme, une fonction seule, simple, maitrisé en théorie, et avec pourtant rien de bien exceptionnel.
Code:
If Left(temp, 1) <> "=" Then temp = "=" & temp
Cells(1, cl).FormulaLocal = temp
erreur d'execution -2147417848(80010108) - la methode "formulalocal" de l'objet "range" a échoué.
donc, temp est un string
cl est un long
cl est égal ici dans mon fichier a 6 (mais il pourrait avoir une autre valeur, évidement)
temp contient une formule, celle ci pointant sur une fonction perso.
elle est parfaitement rédigé, aux normes francaise.
temp = "=Percage(6.31;2)" (c'est ma fonction)
alors la, c'est a devenir chevre, se frapper la tete contre le sol, je sais plus quoi inventer.
j'ai tenté par dépit "6,31" au lieu du ".", cette valeur etant le résultat d'un calcul, donc a priori "directement aux bonnes normes" (-c'est du moins ce que je pensais-)
comme c'est le résultat d'une fonction, ce n'est pas la fonction que j'ai testé, mais seulement la formule telle quel dans une cellule vide.
sans surprise
=percage(6.31;2) => fonctionne
=percage(6,31;2) => erreure.
je n'ai pas cherché, donc, a modifier ma fonction source du "6.31"
j'ai tenté par dépis un "formula", avec des "," au lieux de ";" (chose simple a changer) => meme sanction
j'ai essayé avec un objet "range" au lieux de cells.
encore plus fort, dans ce cas, j'obtiens :
Code:
range(Cells(1, cl)).FormulaLocal = temp
nouvelle erreure (faut varrier les plaisir) :
erreur d'exection 1004 : la methode 'range' de l'objet '_global' a échoué
au moins le numéro d'erreur est plus commun que "-2147417848(80010108)"
et peut etre que le soucis est bien le "range". mais en quoi il y a une gaffe dans cette facon de rédiger ?
je comprend plus rien, je craque.
a ce stade du code, il n'y a eue aucun select, et donc l'onglet courant est l'onglet appelant.
la fonction de calcul automatique est coupé le temps que la macro s'execute pour favoriser la rapidité d'execution du code,
la phrase qui plante est donc suivit normalement immédiatement d'un :
Code:
Cells(1, cl).Calculate
resultat = cells(1,cl).value
cells(1,cl).clear
évidement, le code n'arrive jusque la.
toute aide sera .... plus que bienvenue !
cdlmt.
edit : ajout des balise "code". sorry pour ceux qui ont vu avant correction.
Dernière édition: