Macro word qui lit un fichier Excel provoque une erreur

Le
AfterBoy
Bonjour,

J'ai une macro Word qui va lire dans un fichier Excel. Ça fonctionnait
bien depuis 4 ans. La macro Word avait été créé lorsque je travaill=
ais
sous Word 2003. Sur mon poste cohabite maintenant Office 2003 et 2007
depuis l'an passé et ca fonctionnait. J'ai changé mon ordinateur
depuis et la ma macro ne fonctionne plus. Voici mon code

Set MyXL = New Excel.Application
Set MyXL = GetObject(, "Excel.Application")
MyXL.Workbooks.Open "Admission.xlsx"
MyXL.Visible = True

(jusqu'ici le code s'execute bien, je vois l'application Excel
apparaitre avec mon document ouvert
c'est la prochaine ligne qui est en erreur, elle fonctionnait bien
avant)

MyXL.Selection.SpecialCells(xlCellTypeLastCell).Select 'se positionne
sur la dernière cellule

Cette dernière ligne (ci haut) provoque l'erreur 424 Objet requis. Au
fait ca semble pas etre la ligne proprement dite qui est en erreur
mais plutôt l'appel à MyXl puisque la ligne (ci-bas) aussi provoque
cette erreur.

Last = MyXL.ActiveCell.Row

j'me demande si c'est pas un problème de références les voici dans
l'ordre
Visual basic for applications
Microsors Word 12 object library
Microsors Excel 12 object library

J'ai testé la macro sous word 2003 et 2007 et j'ai le même problème.


Merci beaucoup
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
j
Le #20506501
as-tu essayé de faire un temps de pause (application.wait now+2/3600/24)
avant la ligne qui plante ?
a priori ce n'est pas un pb avec Myxl puisque ta ligne MyXL.Workbooks.Open
"Admission.xlsx" passe bien
tu peux aussi essayer

set fich=nothing
while fich is nothing
on error resume next
set fich=MyXL.Workbooks.Open "Admission.xlsx"
on error goto 0
wend

ou bien

set sel=nothing
while sel is nothing
on error resume next
set sel=MyXL.Selection
on error goto 0
wend

...jusqu'à trouver quel objet manque

essaie aussi d'écrire
msgbox xlCellTypeLastCell
pour t'assurer que la constante est bien reconnue (bibliothèques...)


http://jacxl.free.fr



"AfterBoy"
Bonjour,

J'ai une macro Word qui va lire dans un fichier Excel. Ça fonctionnait
bien depuis 4 ans. La macro Word avait été créé lorsque je travaillais
sous Word 2003. Sur mon poste cohabite maintenant Office 2003 et 2007
depuis l'an passé et ca fonctionnait. J'ai changé mon ordinateur
depuis et la ma macro ne fonctionne plus. Voici mon code

Set MyXL = New Excel.Application
Set MyXL = GetObject(, "Excel.Application")
MyXL.Workbooks.Open "Admission.xlsx"
MyXL.Visible = True

(jusqu'ici le code s'execute bien, je vois l'application Excel
apparaitre avec mon document ouvert
c'est la prochaine ligne qui est en erreur, elle fonctionnait bien
avant)

MyXL.Selection.SpecialCells(xlCellTypeLastCell).Select 'se positionne
sur la dernière cellule

Cette dernière ligne (ci haut) provoque l'erreur 424 Objet requis. Au
fait ca semble pas etre la ligne proprement dite qui est en erreur
mais plutôt l'appel à MyXl puisque la ligne (ci-bas) aussi provoque
cette erreur.

Last = MyXL.ActiveCell.Row

j'me demande si c'est pas un problème de références les voici dans
l'ordre
Visual basic for applications
Microsors Word 12 object library
Microsors Excel 12 object library

J'ai testé la macro sous word 2003 et 2007 et j'ai le même problème.


Merci beaucoup
FS
Le #20534991
Bonjour,

Ton code s'exécute sans erreur aussi bien avec Word 2003 qu'avec Word
2007 (et les Excel correspondants) mais sur des machines différentes,
une avec Office 2003 et l'autre (virtuelle) avec Office 2007.
Le point clé de ton message est sans doute "J'ai changé mon ordinateur".
Et donc réinstallé tes applications ? Si oui, pour faire cohabiter des
versions différentes d'Office, il est plus que fortement recommandé
d'installer d'abord la version la plus ancienne puis la plus récente, en
changeant bien sûr les dossiers d'installation proposés par défaut.
Par ailleurs, ton fichier à ouvrir étant au format 2007, l'utilitaire
Microsoft de conversion des formats de fichiers 2007/versions
antérieures d'Office est à réinstaller aussi.
Si tu as bien fait tout ça, en plus des pistes proposés par , tu peux
essayer aussi de qualifier plus précisément les objets à manipuler.
Par exemple, pour la ligne qui demande un objet (erreur 424) :

MyXL.Workbooks("Admission.xlsx").Sheets("Feuil1"). _
SpecialCells(xlCellTypeLastCell).Select

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

AfterBoy a écrit :
Bonjour,

J'ai une macro Word qui va lire dans un fichier Excel. Ça fonctionnait
bien depuis 4 ans. La macro Word avait été créé lorsque je travaillais
sous Word 2003. Sur mon poste cohabite maintenant Office 2003 et 2007
depuis l'an passé et ca fonctionnait. J'ai changé mon ordinateur
depuis et la ma macro ne fonctionne plus. Voici mon code

Set MyXL = New Excel.Application
Set MyXL = GetObject(, "Excel.Application")
MyXL.Workbooks.Open "Admission.xlsx"
MyXL.Visible = True

(jusqu'ici le code s'execute bien, je vois l'application Excel
apparaitre avec mon document ouvert
c'est la prochaine ligne qui est en erreur, elle fonctionnait bien
avant)

MyXL.Selection.SpecialCells(xlCellTypeLastCell).Select 'se positionne
sur la dernière cellule

Cette dernière ligne (ci haut) provoque l'erreur 424 Objet requis. Au
fait ca semble pas etre la ligne proprement dite qui est en erreur
mais plutôt l'appel à MyXl puisque la ligne (ci-bas) aussi provoque
cette erreur.

Last = MyXL.ActiveCell.Row

j'me demande si c'est pas un problème de références les voici dans
l'ordre
Visual basic for applications
Microsors Word 12 object library
Microsors Excel 12 object library

J'ai testé la macro sous word 2003 et 2007 et j'ai le même problème.


Merci beaucoup


Publicité
Poster une réponse
Anonyme