[VBA] Probleme dans une macro

4 réponses
Avatar
sullivent
Bonjour,

Voici mon problème, j'ai une première userform dans laquelle j'appel à la fin de celle-ci une deuxième userform et a ce niveau il me met le message suivant:

Erreur d'exécution '-2147417848(80010108)':
Erreur Automation
L'objet invoqué s'est déconnecté de ses clients

Je ne comprend pas d'où est-ce que le problême peut venir!! Ce n'est pas la première fois que j'utilise ce type de procédé dans mes macro, mais là je ne comprend pas!!

Je vous met la fin de ma première Userform

Code Visual Basic :

'ENREGISTRER SOUS
Workbooks("coulissant.xls").Activate
Application.Dialogs(xlDialogSaveAs).Show
Workbooks("Fiches Visseries.xls").Activate
Sheets("VISSERIE SUPPORT GUIDAGE").Select
Application.Dialogs(xlDialogSaveAs).Show
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:=False
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:=False

Implantation.Show

End Sub



Et le début de la deuxième
Code Visual Basic :

Sub Implantation()
Dim a As String
Dim B As String
Dim C As String
Dim D As String
Dim E As String
Dim F As String
Dim G As String
Dim H As String
Dim i As String
Dim j As String
Dim K As String
Dim L As String
Dim M As String
Dim N As String



Quelqu'un pourrait-il me dire d'où vient le problème' cela fait 2 jours que je me prend la tête dessus.

Merci d'avance

4 réponses

Avatar
michdenis
Bonjour,

à partir du code que tu étales, il m'est difficile de voir...

Mais en principe essaie quelque chose comme ceci

Pour afficher le formulaire2 à partir du formulaire1 déjà ouvert

Formulaire1.Hide
Formulaire2.Show
Si tu veux décharger le formulaire1 de la mémoire vive
Unload Formulaire1 ' Ou Unload Me

Si tu n'obtiens pas satisfaction, est-ce possible de publier ton classeur
en utilisant les sites internet Cjoint.com ou cijoint.fr et nous transmettre
l'adresse obtenue ici.

Supprime auparavant toute information sensible.


--
MichD
--------------------------------------------


"sullivent" a écrit dans le message de groupe de discussion :

Bonjour,

Voici mon problème, j'ai une première userform dans laquelle j'appel à la fin
de celle-ci une deuxième userform et a ce niveau il me met le message suivant:

Erreur d'exécution '-2147417848(80010108)':
Erreur Automation
L'objet invoqué s'est déconnecté de ses clients

Je ne comprend pas d'où est-ce que le problême peut venir!! Ce n'est pas la
première fois que j'utilise ce type de procédé dans mes macro, mais là je ne
comprend pas!!

Je vous met la fin de ma première Userform

Code Visual Basic :

'ENREGISTRER SOUS
Workbooks("coulissant.xls").Activate
Application.Dialogs(xlDialogSaveAs).Show
Workbooks("Fiches Visseries.xls").Activate
Sheets("VISSERIE SUPPORT GUIDAGE").Select
Application.Dialogs(xlDialogSaveAs).Show
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:úlse
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:úlse

Implantation.Show

End Sub



Et le début de la deuxième
Code Visual Basic :

Sub Implantation()
Dim a As String
Dim B As String
Dim C As String
Dim D As String
Dim E As String
Dim F As String
Dim G As String
Dim H As String
Dim i As String
Dim j As String
Dim K As String
Dim L As String
Dim M As String
Dim N As String



Quelqu'un pourrait-il me dire d'où vient le problème' cela fait 2 jours que je
me prend la tête dessus.

Merci d'avance
Avatar
sullivent
sullivent a écrit le 29/07/2010 à 15h38 :
Bonjour,

Voici mon problème, j'ai une première userform dans laquelle
j'appel à la fin de celle-ci une deuxième userform et a ce niveau
il me met le message suivant:

Erreur d'exécution '-2147417848(80010108)':
Erreur Automation
L'objet invoqué s'est déconnecté de ses clients

Je ne comprend pas d'où est-ce que le problême peut venir!! Ce
n'est pas la première fois que j'utilise ce type de
procédé dans mes macro, mais là je ne comprend pas!!

Je vous met la fin de ma première Userform

Code Visual Basic :

'ENREGISTRER SOUS
Workbooks("coulissant.xls").Activate
Application.Dialogs(xlDialogSaveAs).Show
Workbooks("Fiches Visseries.xls").Activate
Sheets("VISSERIE SUPPORT GUIDAGE").Select
Application.Dialogs(xlDialogSaveAs).Show
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:úlse
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:úlse

Implantation.Show

End Sub



Et le début de la deuxième
Code Visual Basic :

Sub Implantation()
Dim a As String
Dim B As String
Dim C As String
Dim D As String
Dim E As String
Dim F As String
Dim G As String
Dim H As String
Dim i As String
Dim j As String
Dim K As String
Dim L As String
Dim M As String
Dim N As String



Quelqu'un pourrait-il me dire d'où vient le problème' cela fait 2
jours que je me prend la tête dessus.

Merci d'avance


Bonjour,
d'abord merci de m'avoir répondu.
pour le faite de faire formulaire1.hide
formulaire2.show ou Unload.me, j'ai déjà essayé ces solutions mes cela ne me résoud pas le problème.

Donc je vous metterais mes Userform en piece jointe dans 3 semaines car je suis en vacance et ma macro est sur le poste du travail.

Dons a dans 3 semaines si vous le voulez bien

Merci encore
Avatar
sullivent
michdenis a écrit le 29/07/2010 à 17h26 :
Bonjour,

à partir du code que tu étales, il m'est difficile de voir...

Mais en principe essaie quelque chose comme ceci

Pour afficher le formulaire2 à partir du formulaire1 déjà
ouvert

Formulaire1.Hide
Formulaire2.Show
Si tu veux décharger le formulaire1 de la mémoire vive
Unload Formulaire1 ' Ou Unload Me

Si tu n'obtiens pas satisfaction, est-ce possible de publier ton classeur
en utilisant les sites internet Cjoint.com ou cijoint.fr et nous transmettre
l'adresse obtenue ici.

Supprime auparavant toute information sensible.


--
MichD
--------------------------------------------


"sullivent" a écrit
dans le message de groupe de discussion :

Bonjour,

Voici mon problème, j'ai une première userform dans laquelle
j'appel à la fin
de celle-ci une deuxième userform et a ce niveau il me met le message
suivant:

Erreur d'exécution '-2147417848(80010108)':
Erreur Automation
L'objet invoqué s'est déconnecté de ses clients

Je ne comprend pas d'où est-ce que le problême peut venir!! Ce
n'est pas la
première fois que j'utilise ce type de procédé dans mes
macro, mais là je ne
comprend pas!!

Je vous met la fin de ma première Userform

Code Visual Basic :

'ENREGISTRER SOUS
Workbooks("coulissant.xls").Activate
Application.Dialogs(xlDialogSaveAs).Show
Workbooks("Fiches Visseries.xls").Activate
Sheets("VISSERIE SUPPORT GUIDAGE").Select
Application.Dialogs(xlDialogSaveAs).Show
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:úlse
'FERMETURE FEUILLE ACC COULISSANT
ActiveWindow.Close SAVECHANGES:úlse

Implantation.Show

End Sub



Et le début de la deuxième
Code Visual Basic :

Sub Implantation()
Dim a As String
Dim B As String
Dim C As String
Dim D As String
Dim E As String
Dim F As String
Dim G As String
Dim H As String
Dim i As String
Dim j As String
Dim K As String
Dim L As String
Dim M As String
Dim N As String



Quelqu'un pourrait-il me dire d'où vient le problème' cela fait 2
jours que je
me prend la tête dessus.

Merci d'avance


bonjour,
comme convenu voici en pièce jointe mes deux user form que j'utilise lors de mon problême
http://cjoint.com/?ixoEk6xGIn , userform qui appel l'autre
http://cjoint.com/?ixoET4LeiH , userform qui ne se charge pas (mais fonctionne).

Merci de vos reponse
Avatar
michdenis
Bonjour,

Dans ta procédure de fermeture de ton premier formulaire, tu as une suite importante
de commandes qui doivent s'exécuter... il m'est difficile de détecter l'erreur sans le fichier...
Mais as-tu essayé d'exécuter la procédure pas à pas ? Pour ce faire, tu insères un point d'arrêt
à la première ligne de code de la procédure ou en insérant une ligne de code : Stop
cela arrête l'exécution de la procédure et tu emploies la touche F8 pour exécuter
ligne par ligne chacune des commandes de la procédure.

Si tu veux savoir plus rapidement si ta procédure de fermeture s'exécute totalement et
normalement avant la commande SHOW qui affiche le second formulaire, introduit la ligne "Stop" juste avant la commande
Show...Si tu n'as aucun message d'erreur jusque-là c'est que ton problème provient de l'ouverture de ton deuxième
formulaire.

Dans ton formulaire 2, cette ligne de commande est très particulière :

'SELECTION ONGLET
Sheets(j + K + C + D + L + M + N + O + P).Select

Si chacune des lettres représente un onglet différent du classeur,
il te faudrait écrire :
Sheets(Array("j", "K" ,"C", "D" , "L", "M", "N", "O", P)).Select

Si chacune des lettres représente une variable pour le nom de l'onglet,
la syntaxe demeure la même, mais tu enlèves les guillemets autour de chaque lettre.

Voilà !

--
MichD
--------------------------------------------


"sullivent" a écrit dans le message de groupe de discussion :

Bonjour,

Voici mon problème, j'ai une première userform dans laquelle j'appel à la fin
de celle-ci une deuxième userform (qui fonctionne quand je la fait tourner
toutes seul) et a ce niveau il me met le message suivant:

Erreur d'exécution '-2147417848(80010108)':
Erreur Automation
L'objet invoqué s'est déconnecté de ses clients

Je ne comprend pas d'où est-ce que le problême peut venir!! Ce n'est pas la
première fois que j'utilise ce type de procédé dans mes macro, mais là je ne
comprend pas!!

Je vous met le lien de ma première Userform

http://cjoint.com/?ixoEk6xGIn

Et le lien de la deuxième

http://cjoint.com/?ixoET4LeiH

Quelqu'un pourrait-il me dire d'où vient le problème' cela fait 2 jours que je
me prend la tête dessus.

Merci d'avance