Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro word qui lit un fichier Excel provoque une erreur

2 réponses
Avatar
AfterBoy
Bonjour,

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

Set MyXL =3D New Excel.Application
Set MyXL =3D GetObject(, "Excel.Application")
MyXL.Workbooks.Open "Admission.xlsx"
MyXL.Visible =3D 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=E8re cellule

Cette derni=E8re 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=F4t l'appel =E0 MyXl puisque la ligne (ci-bas) aussi provoque
cette erreur.

Last =3D MyXL.ActiveCell.Row

j'me demande si c'est pas un probl=E8me de r=E9f=E9rences les voici dans
l'ordre
Visual basic for applications
Microsors Word 12 object library
Microsors Excel 12 object library

J'ai test=E9 la macro sous word 2003 et 2007 et j'ai le m=EAme probl=E8me.


Merci beaucoup

2 réponses

Avatar
j
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" a écrit dans le message de news:

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
Avatar
FS
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