Le mystère de la fonction find word depuis excel (ô_Ô)
Anormade
Messages postés6Date d'inscriptionmercredi 21 octobre 2009StatutMembreDernière intervention21 janvier 2011
-
22 oct. 2009 à 13:52
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 2016
-
22 oct. 2009 à 21:16
Au boulo on utilise des feuilles de calculs excel qui donnent des tableaux.
On édite des rapports sous word automatiquement.
Je me suis confronté à un problème bien étrange.
Lorsque depuis VBA excel je fais un find dans mon document word, sur certain ordi ça plante d'autre pas.("mon_doc.Application.Selection.find....")
Du coup ça devient un casse tête pour écrire un numéro de dossier dans l'entête où on ne peut pas placer de signet.
Bon je m'en suis sorti, mais je voulais signaler ce truc mystique.
Dès que find apparaît dans mon code VBA excel pour un document word pouf plantage.
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 22 oct. 2009 à 16:27
Salut,
ben si on peu mettre un signet dans l'entête
Pour le reste dur de voir d'ou cela peu venir sans le code qui utilise le find... mais je soupçonne qu'il y mélange entre le find d'excel et le find de word... peut etre un probleme de reference donc.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 22 oct. 2009 à 18:18
Bonjour,
Il n'y a pas de raison de plantage entre les deux applications, mais piloter une application à partir d'une autre demande plus de minutie dans le code... surtout au niveau des références aux objets.
En effet, quand on travaille uniquement dans une seule application, certaines facilités aux références d'objets (mais si on ne fait pas attention) sont en jeux...
Ensuite, le coup classique des débutants, c'est les valeurs des constantes sont VBA... Chaque application ont leur propre jeu de constantes, qu'il faut retraduire en valeur lorsqu'on fait un pilotage... Par exemple, sous VBA EXCEL, la constante "wdFindContinue" n'a pas de valeur définie... donc 0 par défaut... Or "wdFindContinue" vaut 1 sous WORD...
Anormade
Messages postés6Date d'inscriptionmercredi 21 octobre 2009StatutMembreDernière intervention21 janvier 2011 22 oct. 2009 à 19:36
Le code que j'utilise, je l'ai obtenu en enregistrant une macro sous word. J'ai juste adapté en rajoutant "mon_doc.Application." devant les instructions.
(Et j'ai bien évidemment activé la ref des instructions de Word)
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 22 oct. 2009 à 21:16
... "ref des instructions de Word", ne veut rien dire pour moi. Tu as créé un objet qui pointe sur WORD, et passer les instructions de la macro fait sous WORD... mais les constantes ne sont pas prises en compte, car l'application d'origine (Excel ici) fait un premier traitement, en remplaçant les constantes par leurs valeurs... Donc WORD, ne reçoit pas les constantes sous leurs formes symbolique, mais numérique...