Macro différente selon le PC qui l'exécute

Clark

XLDnaute Junior
Bonjour à tout le forum,

j'ai un problème sur un fichier excel constitué de différentes macros, toutes très basiques.
C'est du genre, afficher ou pas des onglets, des lignes, colorer des cellules en bleu, en gris, ajouter une formule dans telle cellule, etc, etc...

Tout marche très bien sur mon PC et celui de mon client.
Seulement ce client, fournit ce fichier à ses filiales situées dans différents pays dont l'asie.
Et le même fichier à des comportements très différents selon ces filiales.
Dans certaines, il affiche des erreurs de run-time error 1004, des erreurs d'exécutions 32809. Parfois il n'y a pas d'erreur, mais la macro n'a pas fait ce qu'on lui demandait; j'ai vérifié ce dernier point en ajoutant ligne par ligne, un incrément dans une cellule pour voir où ça bloquait. Et il arrive au bon endroit mais après, c'est comme si l'exécution s'était arrêtée.
Le pire là dedans, c'est que cela ne se produit pas dans toutes les filiales (heureusement), pas dans toutes les macros et que lorsqu'on récupère le fichier de la filiale, ça marche chez moi et chez le client!!!
Je précise que l'on teste tous en 2007 SP3
Par contre, la filiale prend le fichier modèle et en modifie un peu le contenu (paramétrage dans un onglet avec des valeurs différentes selon la filiale) mais je le redis, si on récupère le fichier, tout marche bien chez moi.

Avez-vous une idée de ce qui peut se passer? Existe-t'il un moyen de résoudre ce genre de comportement?

Merci pour votre attention
Clark
 

MJ13

XLDnaute Barbatruc
Re : Macro différente selon le PC qui l'exécute

Bonjour Clark

Le problème avec Excel est qu'il existe de nombreuses versions avec des codes qui ne sont pas toujours portables.

Pour faire un code qui fonctionne bien, quelque soit la version, il faut coder de manière assez simple et debugger les codes en fonction de chaque version.

Après, il faudrait s'assurer que les paramètres régionaux soient le mêmes.
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re : Macro différente selon le PC qui l'exécute

Bonjour à tous,

J'ai commencé à programmer VBA avec Excel 2000 - 2003 ! Une programmation simple et très compréhensive !

Peu à peu et en visitant régulièrement excel-downloads, j'ai modifié cette programmation du mieux possible !

Exemple : l'écriture select m'a été interdite alors qu'elle était disponible dans Excel 2000 - 2003 !

Sheets("X").Select
Range("A1").Value = "K"

Devient avec Excel 2007 & Supérieur

With Sheets("X")
.Range("A1")="K"
End With

Ainsi cette programmation "passe partout" d'Excel 2000 - 2003 peut peut-être ( nous n'avons pas eu cette macro) convenir à ce fichier !

Bonne journée !
 

Clark

XLDnaute Junior
Re : Macro différente selon le PC qui l'exécute

Merci à tous les deux pour vos réponses.

MJ13, en quoi les paramètres régionaux peuvent intervenir sur des instructions visant à colorer une cellule ou insérer une formule dans une cellule par exemple?

Ce qui m'étonne également, c'est que tout marchait bien depuis des mois et que tout à coup, des retours ont commencé à arriver depuis le mois d'avril de plusieurs filiales.

J'ai également entendu dire que des mises à jour (KB...) d'Excel 2010 pouvait occasionner des problèmes d'exécution des macros et qu'il fallait les désinstaller. C'est peut-être la même chose en 2007, mais les filiales n'auront pas les droits d'accéder à ces mises à jour. Donc je ne peux rien faire de ce côté-là.

J'espère ne pas avoir à tout re-coder car il y a du boulot. Pourtant les instructions sont hyper simples!

Si vous avez d'autres pistes, je suis preneur car là, je désespère!

Clark
 

Roland_M

XLDnaute Barbatruc
Re : Macro différente selon le PC qui l'exécute

Bonjour tout le monde,

Sans fichier joint avec les lignes de codes qui posent problème on est dans le néant ! impossible de te répondre !

Quand MJ13 parle de paramètres régionaux il s'agit des formats en général du . de : ou , ou ; de format date etc ...
tu dis en quoi cela concerne la couleur d'une cellule !?
eh bien c'est simple, si pour colorer cette cellule il y a des testes sur les dates ou autres formats le résultat sera faussé !

sans compter les versions d'excel anglais et français par exemple
Feuil1 qui devient Sheet1
quand je vois des codes du genre Feuil1.Range(... ) c'est une erreur !
il faut toujours renommer ses onglets afin de pouvoir les manipuler en vba
ainsi Sheets("MonOnglet").Range(... ) ça fonctionnera toujours !

ensuite les appels de fonction API, gros soucis de compatibilité !
essayer tant que faire ce peu de programmer soit même ses fonctions

et la liste est longue ...

bon courage !
 

Discussions similaires