Bug fonction VBA qui retourne erreur 438

Résolu/Fermé
Shaarlun - 4 déc. 2015 à 10:59
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 4 déc. 2015 à 15:31
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 !

A voir également:

5 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 déc. 2015 à 11:13
Bonjour,

En effet
toto = Format(Now(), "dd.mm.yy")
, c'est ok, si vous ne mettez le
 Dim 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 !!!!!!!!!!!!!!!!!!!!
0
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.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 4/12/2015 à 12:02
Re,
range le r est en minuscule pas en majuscule !!!!!!!!!!!!!!!!!!!!
Non, ce n'est pas un detail, une ligne d'instructions validee doit avoir la premiere lettre des instructions en majuscule pas en minuscule
0
Shaarlun > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
4 déc. 2015 à 12:07
Je suis désolé mais ceci n'est forcément vrai. En effet,
 range("A1") = now 
marche sans problème avec ou sans majuscule

De plus cela ne concerne pas le problème évoqué ici puisque je ne peux descendre jusqu'à cette ligne de code, le problème survenant avant.
0
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).
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 4/12/2015 à 12:12
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
0
ok
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 déc. 2015 à 13:22
Re,

A defaut, pouvez-vous mettre le fichier qui pose probleme a dispo
0

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
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 déc. 2015 à 15:31
Re,

le range continue à ne pas me mettre de majuscule Pas normal, mais l'essentiel est que vous ayez trouve ce qui posait probleme. En regle generale, ne pas prendre un nom d'objet qui s'apparente a une instruction VBA
0