Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[VBA] Probleme dans une macro

160 views
Skip to first unread message

sullivent

unread,
Jul 29, 2010, 9:38:22 AM7/29/10
to
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

michdenis

unread,
Jul 29, 2010, 11:26:48 AM7/29/10
to
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" <nospam_jona...@orange.fr> a écrit dans le message de groupe de discussion :
2eKdnZLTe7b...@giganews.com...

sullivent

unread,
Jul 29, 2010, 6:21:06 PM7/29/10
to
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

sullivent

unread,
Aug 23, 2010, 8:35:05 AM8/23/10
to
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

sullivent

unread,
Aug 23, 2010, 8:44:52 AM8/23/10
to
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

michdenis

unread,
Aug 23, 2010, 10:04:22 AM8/23/10
to
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" <nospam_jona...@orange.fr> a écrit dans le message de groupe de discussion :
M-SdnbJIZ8f...@giganews.com...

0 new messages