Bug fonction VBA qui retourne erreur 438
Résolu
Shaarlun
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travaille sur un fichier VBA et j'ai une erreur que je n'arrive absolument pas à résoudre :
La fonction format() dans mon code VBA ne marche plus. Le code est ultra simple :
Format(Now, "dd.mm.yy").
Pourtant j'ai une erreur 438 qui m'est retourné.
Ci joint la capture d'écran de mon code : http://www.cjoint.com/c/ELej6JUHJAD
Je précise que cela vient exclusivement de ce fichier puisque si j'ouvre un autre fichier, je n'ai aucun problème.
J'ai regardé les références et rien n'est à signaler de ce coté.
Auriez vous une piste pour m'aider ?
Merci !
Je travaille sur un fichier VBA et j'ai une erreur que je n'arrive absolument pas à résoudre :
La fonction format() dans mon code VBA ne marche plus. Le code est ultra simple :
Format(Now, "dd.mm.yy").
Pourtant j'ai une erreur 438 qui m'est retourné.
Ci joint la capture d'écran de mon code : http://www.cjoint.com/c/ELej6JUHJAD
Je précise que cela vient exclusivement de ce fichier puisque si j'ouvre un autre fichier, je n'ai aucun problème.
J'ai regardé les références et rien n'est à signaler de ce coté.
Auriez vous une piste pour m'aider ?
Merci !
5 réponses
-
Bonjour,
En effettoto = Format(Now(), "dd.mm.yy")
, c'est ok, si vous ne mettez leDim toto as Date
, le format est zapper et vous aurez 04:12:15
Par contre, il y a quelque chose d'anormale sur la ligne du point d'arret: range le r est en minuscule pas en majuscule !!!!!!!!!!!!!!!!!!!! -
Merci pour cette réponse.
Néanmoins, le point d'arrêt est un "détail" puisque la fonction n'arrive pas à trouver la variable "toto" (et ici le range est faux puisque je ne l'attribue à aucune feuille) --> Erreur 438
Que cette variable soit déclaré en date, variante ou rien, j'obtiens erreur 438. -
Le problème vient réellement de la fonction format puisque ce code :
toto = Format(5, "0.00%")
Ne marche pas non plus (même erreur).-
Re,
A mon tour d'etre desole, mais
Je suis désolé mais ceci n'est forcément vrai. En effet,range("A1") = now marche
Jusqu'a aujoud'hui, l'interpreteur VBA passe la premiere lettre des instructions Excel (pour ce cas) en majuscule, si ce n'est pas le cas il y a un probleme soit de syntaxe ou de votre Excel
-
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ayé !
Je viens enfin de trouver le bug. En faite, le problème était relativement simple et logique mais fallait regarder ailleurs que sur le code.
A un moment, je me suis retrouvé à renommer les noms des objets dans le menu VBA (ceux disponible dans le menu editeur VBA --> VBA project --> Microsoft Excel Objets). Or l'un de mes onglets a pris le nom de "Format".
Ainsi, lorsque j'appelais ce que je croyais être la fonction format, Excel souhaitait me donner les fonctions liés à une feuille et me donnait donc le message d'erreur 438.
PS : le range continue à ne pas me mettre de majuscule au début de ligne mais ça n'empeche en rien les calculs, écriture et lecture