Macro fonctionne sous un PC et pas un autre

maninwhite

XLDnaute Occasionnel
Bonjour à toutes et à tous.

J'ai crée une base comportant une macro.
Je l'ai écrite sous 2007 et elle fonctionne parfaitement sous 2003 dans la quasi totalité des cas.

Sur quelques PC (4) qui ont excel 2003, lorsque je veux executer une des macro, le fichier plante avec pour message d'erreur

Code:
runtime error 91 object variable or With block variable not set

Après avoir utilisé la fonction debug, voici la ligne qui plante

Code:
    'Calcul de la colonne
    Sheets("BOS_Administration").Activate
    col_mois = Sheets("BOS_Administration").Range("1:1").Find(Format(Now(), "mmmm-yy"), LookIn:=xlValues, LookAt:=xlWhole).Column

C'est plus précisement la ligne ci dessous qui plante :

Code:
    col_mois = Sheets("BOS_Administration").Range("1:1").Find(Format(Now(), "mmmm-yy"), LookIn:=xlValues, LookAt:=xlWhole).Column


Comme je l'ai dit sur quasi tous les PC étant en 2003 & 2007 tout marche sauf sur quelques uns.

J'ai donc pensé dans un premier temps aux librairies.
Après avoir vérifié, les PC sur lesquels ça plante, les librairies sont exactement les même.

Je suis à cours d'idées.

Merci d'avance
 

maninwhite

XLDnaute Occasionnel
Re : Macro fonctionne sous un PC et pas un autre

Je remonte le sujet car en ayant utilisé la formule ci dessous

Code:
set mois = Sheets("BOS_Administration").Range("1:1").Find(Format(Now(), "mmmm-yy"), LookIn:=xlValues, LookAt:=xlWhole)
col_mois=mois.column

cette fois ci ça plante sur
Code:
col_mois=mois.column

la valeur = empty

Merci
 

pierrejean

XLDnaute Barbatruc
Re : Macro fonctionne sous un PC et pas un autre

Re

Dans ce cas le probléme ne vient pas d'une difference entre PC mais du contenu du fichier et plus precisement de la colonne A de la feuille BOS_Administration dans laquelle la macro ne trouve pas ce qu'elle cherche
Suggestion:

VB:
set mois = Sheets("BOS_Administration").Range("1:1").Find(Format(Now(), "mmmm-yy"), LookIn:=xlValues, LookAt:=xlWhole)
if not c is nothing then
   col_mois=mois.column
else
   msgbox("La date n'existe pas en colonne A")
   exit sub
end if

et il n'y aura plus de plantage
 

maninwhite

XLDnaute Occasionnel
Re : Macro fonctionne sous un PC et pas un autre

Voilà, solution trouvée.

Après avoir investigué avec une personne du service informatique, nous avons trouvé le problème.

Comme je le pensais depuis le début, le soucis ne vient pas du code, donc mon code de départ est correct.
Code:
    col_mois = Sheets("BOS_Administration").Range("1:1").Find(Format(Now(), "mmmm-yy"), LookIn:=xlValues, LookAt:=xlWhole).Column

Le soucis venait du format de date sur quelques PCs.
Effectivement certains PC avait sous Windows dans les paramètres régionaux, un format de date Anglais. En changeant le format, tout fonctionne.

Le soucis que j'ai, c'est que je ne peux pas demander à ces quelques personnes de changer leur format de date avant de remplir cette base.

Quelqu'un aurait une solution pour que le code ci dessous puisse fonctionner à la fois pour le format de date Anglais et Français?

Merci d'avance.
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 054
Membres
103 443
dernier inscrit
ttttttttttttttttt