OVH Cloud OVH Cloud

Erreur d'automation

13 réponses
Avatar
tous69
Bonjour

Suite à la réinstallation complet du PC de mon boulot et donc de la
réinstallation de mon programme , une erreur d'automation ce produit apres
la création de l'objet EXCEL.
Je ne voir pas quelle DLL, librerie manque ou quelle astuce exite pour
résoudre mon probleme.

Note( win 98 2eme étition et Office 97 standard)


Set DocExcel = CreateObject("Excel.Application")

erreur d'automation=> DocExcel.Visible = False 'True
DocExcel.DisplayAlerts = False
sauvexcel = "C:\CONTRAT\SAISIE\"
& Month(interface.Label3) & Year
(interface.Label3) & ".xls"
NomFichier = sauvexcel
DocExcel.Workbooks.Open
filename:=NomFichier, Editable:=True

D'avance merci

Tous30@ libre.fr ( remplacer libre par free)

3 réponses

1 2
Avatar
Gloops
Salut,

Il s'agit d'une banale collecte d'information, j'envoie un document Word
aux adhérents d'une association, avec un formulaire dedans, et quand les
fichiers sont revenus remplis et que je les ai tous mis dans le même
répertoire, j'ai une macro pour centraliser les infos des documents
Word, afin de faciliter ensuite le traitement (décomptes, statistiques ...)

Sur la machine de développement ça marchait impec, mais évidemment si
Word n'est pas reconnu en Automation ...

J'ai fait ça avec une macro Access, mais ça doit pouvoir facilement être
adapté dans Excel, si tu préfères je peux m'occuper de ça.

Si il fallait le refaire je n'utiliserais plus FSO, car j'ai appris
tout-à-l'heure pourquoi il valait mieux éviter. J'ai une macro pour
sortir le répertoire parent d'un fichier d'après le chemin, en
s'arrêtant à la dernière barre inverse, forcément c'est un peu lourdingue.

Alors quand on arrive à AppWrd.Visible = True, on me répond que cette
propriété n'est pas gérée par cet objet, et il semblerait qu'en réalité
l'objet AppWrd ne soit pas vraiment créé. En tout cas il n'y a pas de
trace de Word dans le gestionnaire des tâches.

_________________________________________________________
Public Function Import()
Dim fso As FileSystemObject
Dim AppWrd As Object
Dim monDoc As Object
Dim rep As Object
Dim NomFichier As String
Dim Rs As Recordset

Set fso = New FileSystemObject
Set rep = fso.GetFile(CurrentDb().Name).ParentFolder
Debug.Print rep.Path
Set AppWrd = CreateObject("Word.Document")
AppWrd.Visible = True
NomFichier = Dir(rep.Path + "*.doc")
ChDrive rep.Path
ChDir rep.Path
Set Rs = CurrentDb().OpenRecordset("tabImport")
While NomFichier <> ""
Debug.Print NomFichier
Set monDoc = AppWrd.Documents.Open(rep.Path + "" + NomFichier)
Rs.AddNew
Rs!Nom = monDoc.FormFields("Nom").Result
Rs!Prenom = monDoc.FormFields("Prenom").Result
Rs.UPDATE
AppWrd.Documents.Close
NomFichier = Dir
Wend
Rs.Close
AppWrd.Quit
Set AppWrd = Nothing
Set fso = Nothing
Set Rs = Nothing
End Function

_____________________________________
tous69 a écrit, le 19/10/2004 19:56 :

Bonjour

Ho....... faite ta macro elle sert à quoi ?
il est possible que je format un pc d'ici 15 jours
Si tu veux je veux bien l'a teste ( si sensé que je puisse ) ta macro et si
tu n'est pas presser!

tous30@ libre .fr
remplace libre par free




Avatar
tous69
bonjour

Alors tu as eu le mems problem que moi! une erreur d'automation.

Moi j'ai fait comme ma indiquer Patrick Philippot voir post suivant
et tout est rentré dans l'ordre .
( This error is caused by an incompatible version of a DLL that was
installed on the system, such as Oleaut32.dll, Olepro32.dll, Asycfilt.dll,
Stdole2.tlb. For example, version 3.50 of Oleaut32.dll is installed and used
only by Windows XP and so causes this error if it is installed on a machine
running any other operating system.)

enfin si ca peut d'aide en tous cas je bloque sur la memes instruction hors
mis que moi c'etait sur excel
mais les dll etant les memes

Ho faite c'est quoi FSO ?

tous30@ libre .fr
Remplace libre par free


Gloops a écrit dans le message :
41768070$0$28558$
Salut,

Il s'agit d'une banale collecte d'information, j'envoie un document Word
aux adhérents d'une association, avec un formulaire dedans, et quand les
fichiers sont revenus remplis et que je les ai tous mis dans le même
répertoire, j'ai une macro pour centraliser les infos des documents
Word, afin de faciliter ensuite le traitement (décomptes, statistiques


...)

Sur la machine de développement ça marchait impec, mais évidemment si
Word n'est pas reconnu en Automation ...

J'ai fait ça avec une macro Access, mais ça doit pouvoir facilement être
adapté dans Excel, si tu préfères je peux m'occuper de ça.

Si il fallait le refaire je n'utiliserais plus FSO, car j'ai appris
tout-à-l'heure pourquoi il valait mieux éviter. J'ai une macro pour
sortir le répertoire parent d'un fichier d'après le chemin, en
s'arrêtant à la dernière barre inverse, forcément c'est un peu lourdingue.

Alors quand on arrive à AppWrd.Visible = True, on me répond que cette
propriété n'est pas gérée par cet objet, et il semblerait qu'en réalité
l'objet AppWrd ne soit pas vraiment créé. En tout cas il n'y a pas de
trace de Word dans le gestionnaire des tâches.

_________________________________________________________
Public Function Import()
Dim fso As FileSystemObject
Dim AppWrd As Object
Dim monDoc As Object
Dim rep As Object
Dim NomFichier As String
Dim Rs As Recordset

Set fso = New FileSystemObject
Set rep = fso.GetFile(CurrentDb().Name).ParentFolder
Debug.Print rep.Path
Set AppWrd = CreateObject("Word.Document")
AppWrd.Visible = True
NomFichier = Dir(rep.Path + "*.doc")
ChDrive rep.Path
ChDir rep.Path
Set Rs = CurrentDb().OpenRecordset("tabImport")
While NomFichier <> ""
Debug.Print NomFichier
Set monDoc = AppWrd.Documents.Open(rep.Path + "" + NomFichier)
Rs.AddNew
Rs!Nom = monDoc.FormFields("Nom").Result
Rs!Prenom = monDoc.FormFields("Prenom").Result
Rs.UPDATE
AppWrd.Documents.Close
NomFichier = Dir
Wend
Rs.Close
AppWrd.Quit
Set AppWrd = Nothing
Set fso = Nothing
Set Rs = Nothing
End Function

_____________________________________
tous69 a écrit, le 19/10/2004 19:56 :

> Bonjour
>
> Ho....... faite ta macro elle sert à quoi ?
> il est possible que je format un pc d'ici 15 jours
> Si tu veux je veux bien l'a teste ( si sensé que je puisse ) ta macro et


si
> tu n'est pas presser!
>
> tous30@ libre .fr
> remplace libre par free
>
>



Avatar
Gloops
tous69 a écrit, le 20/10/2004 21:39 :
bonjour

Alors tu as eu le mems problem que moi! une erreur d'automation.



C'est un peu ce qu'il m'avait semblé ...


Moi j'ai fait comme ma indiquer Patrick Philippot voir post suivant
et tout est rentré dans l'ordre .


Ah ben ça c'est une bonne nouvelle alors.
Pour ma part j'ai déjà essayé comme indiqué, alors je crois qu'il faudra
que j'ouvre un autre fil.
Si ça marche sur ta machine, peut-être pourrais-tu me dire si à présent
ma macro fonctionne ? Veux-tu que je t'envoie un exemple de document
Word pour t'éviter le mal de le préparer ?

Ho faite c'est quoi FSO ?



Regarde la première ligne de ma fonction :
Dim fso As FileSystemObject

FileSystemObject est un composant qui permet de gérer le système de
fichiers, de la machine locale ou d'une machine distante. C'est assez
puissant, on peut connaître les propriétés d'un disque, d'un répertoire,
d'un fichier.

Jusqu'à il n'y a pas longtemps je m'en servais assez régulièrement dans
VB, et puis j'ai appris qu'il vaut mieux éviter car ça utilise beaucoup
de ressources pour des choses que d'autres instructions savent faire de
manière plus sobre, même si elles semblent moins élégantes.

Un de ces quatre je vais retoucher ma fonction pour me passer de FSO,
mais enfin pour le moment si l'installation est si délicate il n'y a pas
encore le feu.
1 2