OVH Cloud OVH Cloud

Excel - erreur Automation

8 réponses
Avatar
Marc Tousignant
Bonjour,

J'ai développé un système multi-application d'ont une communique avec MS
Excel via des objets. Je les utilises pour insérer des données dans mon
fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je l'enregistre
puis le l'ouvre pour permettre à l'usager de saisir ses données. Au moment
de la sauvegarde, certain poste déclanche une "Erreur Automation"­. Je vous
donne un extrait de mon code qui inter-agit entre vb et excel. Fait
éronnant, l'erreur ne se produit que suir certain poste. Pourriez-vous me
renseigner sur ce type d'erreur?

Une aide serait grandement appréciée

Merci

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Crée une nouvelle feuille de temps selon le modèle maître, l'enregistre
' dans l'emplacement choisi par l'utilisateur et l'ouvre
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub createTS(ByRef obj As Excel.Application, strPath As String,
strLogo As String, _
intModele As Integer)
Dim ws As Excel.Worksheet
Dim intJourSemaine As Integer

On Error GoTo Erreurs

'On crée une copie du fichier maître pour l'entrer d'une nouvelle
'feuille de temps
FileCopy strPath, strPathSave
obj.Workbooks.Open strPathSave

'On désactive les events pour l'insertion des données
obj.EnableEvents = False

'Inscription des paramètres de l'en-tête de la feuille de temps
With obj.ActiveSheet
.Unprotect "ti2004"
.Cells(2, 1) = typEmp.strCie
.Cells(2, 2) = typEmp.strNoEmp
.Cells(2, 11) = CDate(cboEndWeek.List(cboEndWeek.ListIndex))
.Cells(4, 1) = UCase(typEmp.strName)
.Cells(4, 6) = UCase(typEmp.strFirstName)
.Cells(12, 5).Select

'Chargement du logo
.setImage (strLogo)
.setTaches (intModele)
'.setVersion (VERSION)
'MsgBox "14", vbOKOnly
.Protect "ti2004"
End With

obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
'obj.ActiveWorkbook.Save
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Saved
= False
obj.EnableEvents = True
obj.Visible = True
dteDateMod = FileDateTime(strPathSave)

Exit Sub

Erreurs:
MsgBox Err.Description & " " & Err.Source, vbInformation, "VB"
obj.Quit
End Sub

8 réponses

Avatar
isabelle
Marc Tousignant a écrit :
> Pourriez-vous me renseigner sur ce type d'erreur?

bonjour Marc,

Erreur Automation (erreur 440)

Lorsque vous accédez à des objets Automation, des types d'erreur
spécifiques peuvent se produire. Cause et solution de cette erreur :

Une erreur s'est produite lors de l'exécution d'une méthode ou de
l'obtention ou de la définition d'une propriété d'une variable objet.
L'erreur a été signalée par l'application qui a créé l'objet.
Vérifiez les propriétés de l'objet Err pour identifier la source et la
nature de l'erreur. Tentez également d'utiliser l'instruction On Error
Resume Next immédiatement avant d'accéder à l'instruction, puis vérifiez
l'absence d'erreurs immédiatement après l'accès à l'instruction.

Pour plus d'informations, sélectionnez l'élément en question et appuyez
sur F1 (sous Windows) ou AIDE (sur Macintosh).


isabelle

Marc Tousignant a écrit :

Bonjour,

J'ai développé un système multi-application d'ont une communique avec MS
Excel via des objets. Je les utilises pour insérer des données dans mon
fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je l'enregistre
puis le l'ouvre pour permettre à l'usager de saisir ses données. Au moment
de la sauvegarde, certain poste déclanche une "Erreur Automation"­. Je vous
donne un extrait de mon code qui inter-agit entre vb et excel. Fait
éronnant, l'erreur ne se produit que suir certain poste. Pourriez-vous me
renseigner sur ce type d'erreur?

Une aide serait grandement appréciée

Merci

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Crée une nouvelle feuille de temps selon le modèle maître, l'enregistre
' dans l'emplacement choisi par l'utilisateur et l'ouvre
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub createTS(ByRef obj As Excel.Application, strPath As String,
strLogo As String, _
intModele As Integer)
Dim ws As Excel.Worksheet
Dim intJourSemaine As Integer

On Error GoTo Erreurs

'On crée une copie du fichier maître pour l'entrer d'une nouvelle
'feuille de temps
FileCopy strPath, strPathSave
obj.Workbooks.Open strPathSave

'On désactive les events pour l'insertion des données
obj.EnableEvents = False

'Inscription des paramètres de l'en-tête de la feuille de temps
With obj.ActiveSheet
.Unprotect "ti2004"
.Cells(2, 1) = typEmp.strCie
.Cells(2, 2) = typEmp.strNoEmp
.Cells(2, 11) = CDate(cboEndWeek.List(cboEndWeek.ListIndex))
.Cells(4, 1) = UCase(typEmp.strName)
.Cells(4, 6) = UCase(typEmp.strFirstName)
.Cells(12, 5).Select

'Chargement du logo
.setImage (strLogo)
.setTaches (intModele)
'.setVersion (VERSION)
'MsgBox "14", vbOKOnly
.Protect "ti2004"
End With

obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
'obj.ActiveWorkbook.Save
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Saved
= False
obj.EnableEvents = True
obj.Visible = True
dteDateMod = FileDateTime(strPathSave)

Exit Sub

Erreurs:
MsgBox Err.Description & " " & Err.Source, vbInformation, "VB"
obj.Quit
End Sub





Avatar
MichDenis
Bonjour Marc,

Quant tu fais face à une erreur, si tu désactive la gestion d'erreur, tu vas obtenir directement la ligne de code
problématique ! C'est déjà un bon pas de fait.

A tout hasard, je te suggère ceci :

en lieu et place de ceci :
FileCopy strPath, strPathSave
obj.Workbooks.Open strPathSave

Essaie ceci :
obj.Workbooks.Open strPath
obj.ActiveWorkbook.saveas strPathSave


Salutations!







"Marc Tousignant" a écrit dans le message de news:

Bonjour,

J'ai développé un système multi-application d'ont une communique avec MS
Excel via des objets. Je les utilises pour insérer des données dans mon
fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je l'enregistre
puis le l'ouvre pour permettre à l'usager de saisir ses données. Au moment
de la sauvegarde, certain poste déclanche une "Erreur Automation"­. Je vous
donne un extrait de mon code qui inter-agit entre vb et excel. Fait
éronnant, l'erreur ne se produit que suir certain poste. Pourriez-vous me
renseigner sur ce type d'erreur?

Une aide serait grandement appréciée

Merci

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Crée une nouvelle feuille de temps selon le modèle maître, l'enregistre
' dans l'emplacement choisi par l'utilisateur et l'ouvre
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub createTS(ByRef obj As Excel.Application, strPath As String,
strLogo As String, _
intModele As Integer)
Dim ws As Excel.Worksheet
Dim intJourSemaine As Integer

On Error GoTo Erreurs

'On crée une copie du fichier maître pour l'entrer d'une nouvelle
'feuille de temps
FileCopy strPath, strPathSave
obj.Workbooks.Open strPathSave

'On désactive les events pour l'insertion des données
obj.EnableEvents = False

'Inscription des paramètres de l'en-tête de la feuille de temps
With obj.ActiveSheet
.Unprotect "ti2004"
.Cells(2, 1) = typEmp.strCie
.Cells(2, 2) = typEmp.strNoEmp
.Cells(2, 11) = CDate(cboEndWeek.List(cboEndWeek.ListIndex))
.Cells(4, 1) = UCase(typEmp.strName)
.Cells(4, 6) = UCase(typEmp.strFirstName)
.Cells(12, 5).Select

'Chargement du logo
.setImage (strLogo)
.setTaches (intModele)
'.setVersion (VERSION)
'MsgBox "14", vbOKOnly
.Protect "ti2004"
End With

obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
'obj.ActiveWorkbook.Save
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Saved
= False
obj.EnableEvents = True
obj.Visible = True
dteDateMod = FileDateTime(strPathSave)

Exit Sub

Erreurs:
MsgBox Err.Description & " " & Err.Source, vbInformation, "VB"
obj.Quit
End Sub
Avatar
Marc Tousignant
Merci pour vos suggestion, le problème n'est pas le fileCopy, il se situe
plus loin, après avoir défini les propriétés, au moment du saveWorkBook
(ligne
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save).
Il n'arrive que sur certain poste. Je vais essayer le resume next sur un
poste en erreur. Je reste ouvert à toute autre suggestion...

Merci

"Marc Tousignant" a écrit dans le message de
news:
Bonjour,

J'ai développé un système multi-application d'ont une communique avec MS
Excel via des objets. Je les utilises pour insérer des données dans mon
fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je


l'enregistre
puis le l'ouvre pour permettre à l'usager de saisir ses données. Au


moment
de la sauvegarde, certain poste déclanche une "Erreur Automation"­. Je


vous
donne un extrait de mon code qui inter-agit entre vb et excel. Fait
éronnant, l'erreur ne se produit que suir certain poste. Pourriez-vous me
renseigner sur ce type d'erreur?

Une aide serait grandement appréciée

Merci

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Crée une nouvelle feuille de temps selon le modèle maître, l'enregistre
' dans l'emplacement choisi par l'utilisateur et l'ouvre
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub createTS(ByRef obj As Excel.Application, strPath As String,
strLogo As String, _
intModele As Integer)
Dim ws As Excel.Worksheet
Dim intJourSemaine As Integer

On Error GoTo Erreurs

'On crée une copie du fichier maître pour l'entrer d'une nouvelle
'feuille de temps
FileCopy strPath, strPathSave
obj.Workbooks.Open strPathSave

'On désactive les events pour l'insertion des données
obj.EnableEvents = False

'Inscription des paramètres de l'en-tête de la feuille de temps
With obj.ActiveSheet
.Unprotect "ti2004"
.Cells(2, 1) = typEmp.strCie
.Cells(2, 2) = typEmp.strNoEmp
.Cells(2, 11) = CDate(cboEndWeek.List(cboEndWeek.ListIndex))
.Cells(4, 1) = UCase(typEmp.strName)
.Cells(4, 6) = UCase(typEmp.strFirstName)
.Cells(12, 5).Select

'Chargement du logo
.setImage (strLogo)
.setTaches (intModele)
'.setVersion (VERSION)
'MsgBox "14", vbOKOnly
.Protect "ti2004"
End With

obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
'obj.ActiveWorkbook.Save



obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Saved
= False
obj.EnableEvents = True
obj.Visible = True
dteDateMod = FileDateTime(strPathSave)

Exit Sub

Erreurs:
MsgBox Err.Description & " " & Err.Source, vbInformation, "VB"
obj.Quit
End Sub





Avatar
Clément Marcotte
Bonjour,

Plus de questions que de réponses, mais on ne sait jamais.

Ton "GetFileName", est-ce une fonction personnalisée ? Il y peut-être
une erreur de passage de paramètres, qui ressort en "fausse erreur
automation".

Si c'est un alias pour une fonction API, est-ce que ta fonction API
est supportée sur les machines où ton programme plante ?

Et si tu adaptes ta procédure pour qu'elle roule dans VBA-Excel au
lieu de VB, et que tu la passes au pas-à-pas dans Excel ?


"Marc Tousignant" a écrit dans le
message de news:
Merci pour vos suggestion, le problème n'est pas le fileCopy, il se


situe
plus loin, après avoir défini les propriétés, au moment du


saveWorkBook
(ligne



obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
).
Il n'arrive que sur certain poste. Je vais essayer le resume next


sur un
poste en erreur. Je reste ouvert à toute autre suggestion...

Merci

"Marc Tousignant" a écrit dans le


message de
news:
> Bonjour,
>
> J'ai développé un système multi-application d'ont une communique


avec MS
> Excel via des objets. Je les utilises pour insérer des données


dans mon
> fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je
l'enregistre
> puis le l'ouvre pour permettre à l'usager de saisir ses données.


Au
moment
> de la sauvegarde, certain poste déclanche une "Erreur


Automation"­. Je
vous
> donne un extrait de mon code qui inter-agit entre vb et excel.


Fait
> éronnant, l'erreur ne se produit que suir certain poste.


Pourriez-vous me
> renseigner sur ce type d'erreur?
>
> Une aide serait grandement appréciée
>
> Merci
>
>


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''
> ' Crée une nouvelle feuille de temps selon le modèle maître,


l'enregistre
> ' dans l'emplacement choisi par l'utilisateur et l'ouvre
>


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''
> Private Sub createTS(ByRef obj As Excel.Application, strPath As


String,
> strLogo As String, _
> intModele As Integer)
> Dim ws As Excel.Worksheet
> Dim intJourSemaine As Integer
>
> On Error GoTo Erreurs
>
> 'On crée une copie du fichier maître pour l'entrer d'une


nouvelle
> 'feuille de temps
> FileCopy strPath, strPathSave
> obj.Workbooks.Open strPathSave
>
> 'On désactive les events pour l'insertion des données
> obj.EnableEvents = False
>
> 'Inscription des paramètres de l'en-tête de la feuille de


temps
> With obj.ActiveSheet
> .Unprotect "ti2004"
> .Cells(2, 1) = typEmp.strCie
> .Cells(2, 2) = typEmp.strNoEmp
> .Cells(2, 11) CDate(cboEndWeek.List(cboEndWeek.ListIndex))
> .Cells(4, 1) = UCase(typEmp.strName)
> .Cells(4, 6) = UCase(typEmp.strFirstName)
> .Cells(12, 5).Select
>
> 'Chargement du logo
> .setImage (strLogo)
> .setTaches (intModele)
> '.setVersion (VERSION)
> 'MsgBox "14", vbOKOnly
> .Protect "ti2004"
> End With
>
>


obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> 'obj.ActiveWorkbook.Save
>



obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
d
> = False
> obj.EnableEvents = True
> obj.Visible = True
> dteDateMod = FileDateTime(strPathSave)
>
> Exit Sub
>
> Erreurs:
> MsgBox Err.Description & " " & Err.Source, vbInformation, "VB"
> obj.Quit
> End Sub
>
>
>




Avatar
Marc Tousignant
La fonction est une de mes fonction VB qui ne fait que formatter une String
afin d'avoir un noom de fichier standardisé (FT 123456 2005-02-12.xls). Je
l'utilise pour avoir le nom du fichier destination du FileCopy.

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Plus de questions que de réponses, mais on ne sait jamais.

Ton "GetFileName", est-ce une fonction personnalisée ? Il y peut-être
une erreur de passage de paramètres, qui ressort en "fausse erreur
automation".

Si c'est un alias pour une fonction API, est-ce que ta fonction API
est supportée sur les machines où ton programme plante ?

Et si tu adaptes ta procédure pour qu'elle roule dans VBA-Excel au
lieu de VB, et que tu la passes au pas-à-pas dans Excel ?


"Marc Tousignant" a écrit dans le
message de news:
> Merci pour vos suggestion, le problème n'est pas le fileCopy, il se
situe
> plus loin, après avoir défini les propriétés, au moment du
saveWorkBook
> (ligne
>
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
).
> Il n'arrive que sur certain poste. Je vais essayer le resume next
sur un
> poste en erreur. Je reste ouvert à toute autre suggestion...
>
> Merci
>
> "Marc Tousignant" a écrit dans le
message de
> news:
> > Bonjour,
> >
> > J'ai développé un système multi-application d'ont une communique
avec MS
> > Excel via des objets. Je les utilises pour insérer des données
dans mon
> > fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je
> l'enregistre
> > puis le l'ouvre pour permettre à l'usager de saisir ses données.
Au
> moment
> > de la sauvegarde, certain poste déclanche une "Erreur
Automation"­. Je
> vous
> > donne un extrait de mon code qui inter-agit entre vb et excel.
Fait
> > éronnant, l'erreur ne se produit que suir certain poste.
Pourriez-vous me
> > renseigner sur ce type d'erreur?
> >
> > Une aide serait grandement appréciée
> >
> > Merci
> >
> >
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''
> > ' Crée une nouvelle feuille de temps selon le modèle maître,
l'enregistre
> > ' dans l'emplacement choisi par l'utilisateur et l'ouvre
> >
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''
> > Private Sub createTS(ByRef obj As Excel.Application, strPath As
String,
> > strLogo As String, _
> > intModele As Integer)
> > Dim ws As Excel.Worksheet
> > Dim intJourSemaine As Integer
> >
> > On Error GoTo Erreurs
> >
> > 'On crée une copie du fichier maître pour l'entrer d'une
nouvelle
> > 'feuille de temps
> > FileCopy strPath, strPathSave
> > obj.Workbooks.Open strPathSave
> >
> > 'On désactive les events pour l'insertion des données
> > obj.EnableEvents = False
> >
> > 'Inscription des paramètres de l'en-tête de la feuille de
temps
> > With obj.ActiveSheet
> > .Unprotect "ti2004"
> > .Cells(2, 1) = typEmp.strCie
> > .Cells(2, 2) = typEmp.strNoEmp
> > .Cells(2, 11) > CDate(cboEndWeek.List(cboEndWeek.ListIndex))
> > .Cells(4, 1) = UCase(typEmp.strName)
> > .Cells(4, 6) = UCase(typEmp.strFirstName)
> > .Cells(12, 5).Select
> >
> > 'Chargement du logo
> > .setImage (strLogo)
> > .setTaches (intModele)
> > '.setVersion (VERSION)
> > 'MsgBox "14", vbOKOnly
> > .Protect "ti2004"
> > End With
> >
> >
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > 'obj.ActiveWorkbook.Save
> >
>
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
d
> > = False
> > obj.EnableEvents = True
> > obj.Visible = True
> > dteDateMod = FileDateTime(strPathSave)
> >
> > Exit Sub
> >
> > Erreurs:
> > MsgBox Err.Description & " " & Err.Source, vbInformation, "VB"
> > obj.Quit
> > End Sub
> >
> >
> >
>
>



Avatar
Clément Marcotte
Bonjour,

D'autres question en l'air:

Sur les machines qui plantent, est-ce que l'utilisateur a les droite
en lecture-écriture-effacement ?

Sur les machines qui plantent, est-ce parce que l'utilisateur essaie
d'écraser un fichier existant du même nom ?

Je me demande si c'est vraiment un problème automation, ou si le
message "erreur automation" cache une autre erreur mais que le vrai
message d'erreur est "camouflé" par la liaison OLE.



"Marc Tousignant" a écrit dans le
message de news:
La fonction est une de mes fonction VB qui ne fait que formatter une


String
afin d'avoir un noom de fichier standardisé (FT 123456


2005-02-12.xls). Je
l'utilise pour avoir le nom du fichier destination du FileCopy.

"Clément Marcotte" a écrit dans le


message
de news:
> Bonjour,
>
> Plus de questions que de réponses, mais on ne sait jamais.
>
> Ton "GetFileName", est-ce une fonction personnalisée ? Il y


peut-être
> une erreur de passage de paramètres, qui ressort en "fausse erreur
> automation".
>
> Si c'est un alias pour une fonction API, est-ce que ta fonction


API
> est supportée sur les machines où ton programme plante ?
>
> Et si tu adaptes ta procédure pour qu'elle roule dans VBA-Excel au
> lieu de VB, et que tu la passes au pas-à-pas dans Excel ?
>
>
> "Marc Tousignant" a écrit dans le
> message de news:
> > Merci pour vos suggestion, le problème n'est pas le fileCopy, il


se
> situe
> > plus loin, après avoir défini les propriétés, au moment du
> saveWorkBook
> > (ligne
> >
>


obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> ).
> > Il n'arrive que sur certain poste. Je vais essayer le resume


next
> sur un
> > poste en erreur. Je reste ouvert à toute autre suggestion...
> >
> > Merci
> >
> > "Marc Tousignant" a écrit dans le
> message de
> > news:
> > > Bonjour,
> > >
> > > J'ai développé un système multi-application d'ont une


communique
> avec MS
> > > Excel via des objets. Je les utilises pour insérer des


données
> dans mon
> > > fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je
> > l'enregistre
> > > puis le l'ouvre pour permettre à l'usager de saisir ses


données.
> Au
> > moment
> > > de la sauvegarde, certain poste déclanche une "Erreur
> Automation"­. Je
> > vous
> > > donne un extrait de mon code qui inter-agit entre vb et excel.
> Fait
> > > éronnant, l'erreur ne se produit que suir certain poste.
> Pourriez-vous me
> > > renseigner sur ce type d'erreur?
> > >
> > > Une aide serait grandement appréciée
> > >
> > > Merci
> > >
> > >
>


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> ''''
> > > ' Crée une nouvelle feuille de temps selon le modèle maître,
> l'enregistre
> > > ' dans l'emplacement choisi par l'utilisateur et l'ouvre
> > >
>


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> ''''
> > > Private Sub createTS(ByRef obj As Excel.Application, strPath


As
> String,
> > > strLogo As String, _
> > > intModele As Integer)
> > > Dim ws As Excel.Worksheet
> > > Dim intJourSemaine As Integer
> > >
> > > On Error GoTo Erreurs
> > >
> > > 'On crée une copie du fichier maître pour l'entrer d'une
> nouvelle
> > > 'feuille de temps
> > > FileCopy strPath, strPathSave
> > > obj.Workbooks.Open strPathSave
> > >
> > > 'On désactive les events pour l'insertion des données
> > > obj.EnableEvents = False
> > >
> > > 'Inscription des paramètres de l'en-tête de la feuille de
> temps
> > > With obj.ActiveSheet
> > > .Unprotect "ti2004"
> > > .Cells(2, 1) = typEmp.strCie
> > > .Cells(2, 2) = typEmp.strNoEmp
> > > .Cells(2, 11) > > CDate(cboEndWeek.List(cboEndWeek.ListIndex))
> > > .Cells(4, 1) = UCase(typEmp.strName)
> > > .Cells(4, 6) = UCase(typEmp.strFirstName)
> > > .Cells(12, 5).Select
> > >
> > > 'Chargement du logo
> > > .setImage (strLogo)
> > > .setTaches (intModele)
> > > '.setVersion (VERSION)
> > > 'MsgBox "14", vbOKOnly
> > > .Protect "ti2004"
> > > End With
> > >
> > >
>


obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > > 'obj.ActiveWorkbook.Save
> > >
> >
>


obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> d
> > > = False
> > > obj.EnableEvents = True
> > > obj.Visible = True
> > > dteDateMod = FileDateTime(strPathSave)
> > >
> > > Exit Sub
> > >
> > > Erreurs:
> > > MsgBox Err.Description & " " & Err.Source, vbInformation,


"VB"
> > > obj.Quit
> > > End Sub
> > >
> > >
> > >
> >
> >
>




Avatar
Marc Tousignant
Réponse:

L'utilisateur a tout les droits car: 1- ils sont administrateur sur leur
machine et 2- J'utilise le dossier "Mes Documents" pour mes enregistrements.

L'utilisateur ne peut pas écraser un fichier existant car j'ai fais des
tests avec un utilisateur en lui demandant d'effac­er les fichiers existants
(dans le cas où l'application aurait réussi à les créer et l'erreur est
toujours présente.)

J'ai tenté de faire roulé le programme sans la ligne
workbooks(getfilename())­.save sur un poste et ça plante toujours.

Je me demande si c'est vraiment un problème automation, ou si le
message "erreur automation" cache une autre erreur mais que le vrai
message d'erreur est "camouflé" par la liaison OLE.




Sais-tu comment je pourrais le savoir?

Merci

Marc T.

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

D'autres question en l'air:

Sur les machines qui plantent, est-ce que l'utilisateur a les droite
en lecture-écriture-effacement ?

Sur les machines qui plantent, est-ce parce que l'utilisateur essaie
d'écraser un fichier existant du même nom ?

Je me demande si c'est vraiment un problème automation, ou si le
message "erreur automation" cache une autre erreur mais que le vrai
message d'erreur est "camouflé" par la liaison OLE.



"Marc Tousignant" a écrit dans le
message de news:
> La fonction est une de mes fonction VB qui ne fait que formatter une
String
> afin d'avoir un noom de fichier standardisé (FT 123456
2005-02-12.xls). Je
> l'utilise pour avoir le nom du fichier destination du FileCopy.
>
> "Clément Marcotte" a écrit dans le
message
> de news:
> > Bonjour,
> >
> > Plus de questions que de réponses, mais on ne sait jamais.
> >
> > Ton "GetFileName", est-ce une fonction personnalisée ? Il y
peut-être
> > une erreur de passage de paramètres, qui ressort en "fausse erreur
> > automation".
> >
> > Si c'est un alias pour une fonction API, est-ce que ta fonction
API
> > est supportée sur les machines où ton programme plante ?
> >
> > Et si tu adaptes ta procédure pour qu'elle roule dans VBA-Excel au
> > lieu de VB, et que tu la passes au pas-à-pas dans Excel ?
> >
> >
> > "Marc Tousignant" a écrit dans le
> > message de news:
> > > Merci pour vos suggestion, le problème n'est pas le fileCopy, il
se
> > situe
> > > plus loin, après avoir défini les propriétés, au moment du
> > saveWorkBook
> > > (ligne
> > >
> >
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > ).
> > > Il n'arrive que sur certain poste. Je vais essayer le resume
next
> > sur un
> > > poste en erreur. Je reste ouvert à toute autre suggestion...
> > >
> > > Merci
> > >
> > > "Marc Tousignant" a écrit dans le
> > message de
> > > news:
> > > > Bonjour,
> > > >
> > > > J'ai développé un système multi-application d'ont une
communique
> > avec MS
> > > > Excel via des objets. Je les utilises pour insérer des
données
> > dans mon
> > > > fichier, j'y appel 2 macros (Sub public dans ma feuille 1), je
> > > l'enregistre
> > > > puis le l'ouvre pour permettre à l'usager de saisir ses
données.
> > Au
> > > moment
> > > > de la sauvegarde, certain poste déclanche une "Erreur
> > Automation"­. Je
> > > vous
> > > > donne un extrait de mon code qui inter-agit entre vb et excel.
> > Fait
> > > > éronnant, l'erreur ne se produit que suir certain poste.
> > Pourriez-vous me
> > > > renseigner sur ce type d'erreur?
> > > >
> > > > Une aide serait grandement appréciée
> > > >
> > > > Merci
> > > >
> > > >
> >
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> > ''''
> > > > ' Crée une nouvelle feuille de temps selon le modèle maître,
> > l'enregistre
> > > > ' dans l'emplacement choisi par l'utilisateur et l'ouvre
> > > >
> >
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> > ''''
> > > > Private Sub createTS(ByRef obj As Excel.Application, strPath
As
> > String,
> > > > strLogo As String, _
> > > > intModele As Integer)
> > > > Dim ws As Excel.Worksheet
> > > > Dim intJourSemaine As Integer
> > > >
> > > > On Error GoTo Erreurs
> > > >
> > > > 'On crée une copie du fichier maître pour l'entrer d'une
> > nouvelle
> > > > 'feuille de temps
> > > > FileCopy strPath, strPathSave
> > > > obj.Workbooks.Open strPathSave
> > > >
> > > > 'On désactive les events pour l'insertion des données
> > > > obj.EnableEvents = False
> > > >
> > > > 'Inscription des paramètres de l'en-tête de la feuille de
> > temps
> > > > With obj.ActiveSheet
> > > > .Unprotect "ti2004"
> > > > .Cells(2, 1) = typEmp.strCie
> > > > .Cells(2, 2) = typEmp.strNoEmp
> > > > .Cells(2, 11) > > > CDate(cboEndWeek.List(cboEndWeek.ListIndex))
> > > > .Cells(4, 1) = UCase(typEmp.strName)
> > > > .Cells(4, 6) = UCase(typEmp.strFirstName)
> > > > .Cells(12, 5).Select
> > > >
> > > > 'Chargement du logo
> > > > .setImage (strLogo)
> > > > .setTaches (intModele)
> > > > '.setVersion (VERSION)
> > > > 'MsgBox "14", vbOKOnly
> > > > .Protect "ti2004"
> > > > End With
> > > >
> > > >
> >
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > > > 'obj.ActiveWorkbook.Save
> > > >
> > >
> >
obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > d
> > > > = False
> > > > obj.EnableEvents = True
> > > > obj.Visible = True
> > > > dteDateMod = FileDateTime(strPathSave)
> > > >
> > > > Exit Sub
> > > >
> > > > Erreurs:
> > > > MsgBox Err.Description & " " & Err.Source, vbInformation,
"VB"
> > > > obj.Quit
> > > > End Sub
> > > >
> > > >
> > > >
> > >
> > >
> >
>
>



Avatar
Clément Marcotte
Bonjour,

C'est un peu pour cela que je demandais si tu pouvais adapter ta
procédure dans VBA pour Excel, et en l'exécutant au pas à pas à partir
d'un module dans Excel.


"Marc Tousignant" a écrit dans le
message de news:
Réponse:

L'utilisateur a tout les droits car: 1- ils sont administrateur sur


leur
machine et 2- J'utilise le dossier "Mes Documents" pour mes


enregistrements.

L'utilisateur ne peut pas écraser un fichier existant car j'ai fais


des
tests avec un utilisateur en lui demandant d'effac­er les fichiers


existants
(dans le cas où l'application aurait réussi à les créer et l'erreur


est
toujours présente.)

J'ai tenté de faire roulé le programme sans la ligne
workbooks(getfilename())­.save sur un poste et ça plante toujours.

> Je me demande si c'est vraiment un problème automation, ou si le
> message "erreur automation" cache une autre erreur mais que le


vrai
> message d'erreur est "camouflé" par la liaison OLE.
>

Sais-tu comment je pourrais le savoir?

Merci

Marc T.

"Clément Marcotte" a écrit dans le


message
de news:
> Bonjour,
>
> D'autres question en l'air:
>
> Sur les machines qui plantent, est-ce que l'utilisateur a les


droite
> en lecture-écriture-effacement ?
>
> Sur les machines qui plantent, est-ce parce que l'utilisateur


essaie
> d'écraser un fichier existant du même nom ?
>
> Je me demande si c'est vraiment un problème automation, ou si le
> message "erreur automation" cache une autre erreur mais que le


vrai
> message d'erreur est "camouflé" par la liaison OLE.
>
>
>
> "Marc Tousignant" a écrit dans le
> message de news:
> > La fonction est une de mes fonction VB qui ne fait que formatter


une
> String
> > afin d'avoir un noom de fichier standardisé (FT 123456
> 2005-02-12.xls). Je
> > l'utilise pour avoir le nom du fichier destination du FileCopy.
> >
> > "Clément Marcotte" a écrit dans


le
> message
> > de news:
> > > Bonjour,
> > >
> > > Plus de questions que de réponses, mais on ne sait jamais.
> > >
> > > Ton "GetFileName", est-ce une fonction personnalisée ? Il y
> peut-être
> > > une erreur de passage de paramètres, qui ressort en "fausse


erreur
> > > automation".
> > >
> > > Si c'est un alias pour une fonction API, est-ce que ta


fonction
> API
> > > est supportée sur les machines où ton programme plante ?
> > >
> > > Et si tu adaptes ta procédure pour qu'elle roule dans


VBA-Excel au
> > > lieu de VB, et que tu la passes au pas-à-pas dans Excel ?
> > >
> > >
> > > "Marc Tousignant" a écrit dans


le
> > > message de news:
> > > > Merci pour vos suggestion, le problème n'est pas le


fileCopy, il
> se
> > > situe
> > > > plus loin, après avoir défini les propriétés, au moment du
> > > saveWorkBook
> > > > (ligne
> > > >
> > >
>


obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > > ).
> > > > Il n'arrive que sur certain poste. Je vais essayer le


resume
> next
> > > sur un
> > > > poste en erreur. Je reste ouvert à toute autre


suggestion...
> > > >
> > > > Merci
> > > >
> > > > "Marc Tousignant" a écrit dans


le
> > > message de
> > > > news:
> > > > > Bonjour,
> > > > >
> > > > > J'ai développé un système multi-application d'ont une
> communique
> > > avec MS
> > > > > Excel via des objets. Je les utilises pour insérer des
> données
> > > dans mon
> > > > > fichier, j'y appel 2 macros (Sub public dans ma feuille


1), je
> > > > l'enregistre
> > > > > puis le l'ouvre pour permettre à l'usager de saisir ses
> données.
> > > Au
> > > > moment
> > > > > de la sauvegarde, certain poste déclanche une "Erreur
> > > Automation"­. Je
> > > > vous
> > > > > donne un extrait de mon code qui inter-agit entre vb et


excel.
> > > Fait
> > > > > éronnant, l'erreur ne se produit que suir certain poste.
> > > Pourriez-vous me
> > > > > renseigner sur ce type d'erreur?
> > > > >
> > > > > Une aide serait grandement appréciée
> > > > >
> > > > > Merci
> > > > >
> > > > >
> > >
>


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> > > ''''
> > > > > ' Crée une nouvelle feuille de temps selon le modèle


maître,
> > > l'enregistre
> > > > > ' dans l'emplacement choisi par l'utilisateur et l'ouvre
> > > > >
> > >
>


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> > > ''''
> > > > > Private Sub createTS(ByRef obj As Excel.Application,


strPath
> As
> > > String,
> > > > > strLogo As String, _
> > > > > intModele As Integer)
> > > > > Dim ws As Excel.Worksheet
> > > > > Dim intJourSemaine As Integer
> > > > >
> > > > > On Error GoTo Erreurs
> > > > >
> > > > > 'On crée une copie du fichier maître pour l'entrer


d'une
> > > nouvelle
> > > > > 'feuille de temps
> > > > > FileCopy strPath, strPathSave
> > > > > obj.Workbooks.Open strPathSave
> > > > >
> > > > > 'On désactive les events pour l'insertion des données
> > > > > obj.EnableEvents = False
> > > > >
> > > > > 'Inscription des paramètres de l'en-tête de la feuille


de
> > > temps
> > > > > With obj.ActiveSheet
> > > > > .Unprotect "ti2004"
> > > > > .Cells(2, 1) = typEmp.strCie
> > > > > .Cells(2, 2) = typEmp.strNoEmp
> > > > > .Cells(2, 11) > > > > CDate(cboEndWeek.List(cboEndWeek.ListIndex))
> > > > > .Cells(4, 1) = UCase(typEmp.strName)
> > > > > .Cells(4, 6) = UCase(typEmp.strFirstName)
> > > > > .Cells(12, 5).Select
> > > > >
> > > > > 'Chargement du logo
> > > > > .setImage (strLogo)
> > > > > .setTaches (intModele)
> > > > > '.setVersion (VERSION)
> > > > > 'MsgBox "14", vbOKOnly
> > > > > .Protect "ti2004"
> > > > > End With
> > > > >
> > > > >
> > >
>


obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > > > > 'obj.ActiveWorkbook.Save
> > > > >
> > > >
> > >
>


obj.Workbooks(getFileName(cboEndWeek.List(cboEndWeek.ListIndex))).Save
> > > d
> > > > > = False
> > > > > obj.EnableEvents = True
> > > > > obj.Visible = True
> > > > > dteDateMod = FileDateTime(strPathSave)
> > > > >
> > > > > Exit Sub
> > > > >
> > > > > Erreurs:
> > > > > MsgBox Err.Description & " " & Err.Source,


vbInformation,
> "VB"
> > > > > obj.Quit
> > > > > End Sub
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> >
> >
>