je repose ma question vu que personne ne m'a r=E9pondu :
j'ai fait une macro qui g=E8re des erreur
ce que je ne comprend pas c'est que lorsque j'arrive pour=20
la deuxi=E8me fois
(la premi=E8re fois, =E7a marche) sur la ligne "Set=20
SelectPOWER =3D GetObject(,
"PowerLogic.Application").ActiveDocument" la gestion=20
d'erreur ne fonction
pas
j'ai le message : "un composant activeX ne peut pas cr=E9er=20
d'objet"
Description du fonctionnement
- ErrorOn est initialis=E9 =E0 false
-lorsque j'arrive sur la ligne "Set SelectPOWER =3D=20
GetObject(,
"PowerLogic.Application").ActiveDocument" une erreur est=20
detect=E9e alors =E7a
me renvoie =E0 l'=E9tiquette OnErrorObject
-ensuite dans la boucle d'erreur, ErrorOn est mis =E0=20
true , la macro
Ouvrirsch est lanc=E9 et pour finir on est renvoy=E9 =E0=20
l'etiquette Debut
- je ne sais pas pourquoi, lorsqu'on arrive encore une=20
fois "Set SelectPOWER
=3D GetObject(, "PowerLogic.Application").ActiveDocument"=20
le gestionnaire
d'erreur ne fonctionne pas
Sub ConnectionPowerLogic5()
ErreurON =3D False
Debut:
On Error GoTo OnErrorGetObject 'Routine de contr=F4le=20
d'erreur
Set SelectPOWER =3D GetObject
(, "PowerLogic.Application").ActiveDocument
Set SelectPOWER =3D Nothing
Exit Sub
OnErrorGetObject:
On Error GoTo 0
Set SelectPOWER =3D Nothing
If ErreurON =3D True Then
MsgBox ("Impossible de se connecter =E0 Power=20
Logic !")
Else
MsgBox ("Probleme de connection avec Power=20
Logic : aucun sch=E9ma
ouvert n'a =E9t=E9 detect=E9 !" & vbCr & "Le programme va=20
essayer d'ouvrir le
sch=E9ma qu'il y a dans le r=E9pertoire de travail.")
ErreurON =3D True
Call Ouvrirsch
GoTo Debut
End If
End Sub
Sub Ouvrirsch(Optional a As Boolean) 'ouvre le fichier=20
sch=E9ma s'il n'est pas
ouvert
MsgBox ("j'ouvre le sch=E9ma mais je ne le trouve pas")
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Emcy,
L'utilisation de GetObject(,.....) est utile pour savoir si une instance de l'application est déjà ouverte en mémoire. Si tu as réussi à initialer ta variable objet "SelectPower" à la première exécution de la ligne de code ... Pourquoi ne pas utiliser ta variable objet "SelectPower". Cette dernière est déjà initialée et elle est valide pour tout le temps que dure l'exécution de ta macro ... (selon l'endroit où elle a été définie).
'---------------------------- Dim SelectPOWER As object
SelectPOWER = GetObject(,"PowerLogic.Application").ActiveDocument if err<>0 then Err=0 Msgbox "Aucune instance de ce fichier est présentement ouvert." Else Msgbox "Ok, PowerLogic est ouvert." End if '----------------------------
Salutations!
P.S. Il est bon de spécifier ce que tu recherches. Comme ton code n'est pas représentatif de ce que tu veux obtenir comme résultat (il ne fonctionne pas) ...il est difficille de déduire l'objectif de la procédure !
Salutations!
"Emcy" a écrit dans le message de news:090801c48b73$95a9a740$ je repose ma question vu que personne ne m'a répondu :
j'ai fait une macro qui gère des erreur ce que je ne comprend pas c'est que lorsque j'arrive pour la deuxième fois (la première fois, ça marche) sur la ligne "Set SelectPOWER = GetObject(, "PowerLogic.Application").ActiveDocument" la gestion d'erreur ne fonction pas
j'ai le message : "un composant activeX ne peut pas créer d'objet"
Description du fonctionnement - ErrorOn est initialisé à false -lorsque j'arrive sur la ligne "Set SelectPOWER GetObject(, "PowerLogic.Application").ActiveDocument" une erreur est detectée alors ça me renvoie à l'étiquette OnErrorObject -ensuite dans la boucle d'erreur, ErrorOn est mis à true , la macro Ouvrirsch est lancé et pour finir on est renvoyé à l'etiquette Debut - je ne sais pas pourquoi, lorsqu'on arrive encore une fois "Set SelectPOWER = GetObject(, "PowerLogic.Application").ActiveDocument" le gestionnaire d'erreur ne fonctionne pas
Sub ConnectionPowerLogic5()
ErreurON = False
Debut: On Error GoTo OnErrorGetObject 'Routine de contrôle d'erreur Set SelectPOWER = GetObject (, "PowerLogic.Application").ActiveDocument
Set SelectPOWER = Nothing Exit Sub
OnErrorGetObject: On Error GoTo 0 Set SelectPOWER = Nothing
If ErreurON = True Then MsgBox ("Impossible de se connecter à Power Logic !") Else MsgBox ("Probleme de connection avec Power Logic : aucun schéma ouvert n'a été detecté !" & vbCr & "Le programme va essayer d'ouvrir le schéma qu'il y a dans le répertoire de travail.") ErreurON = True Call Ouvrirsch GoTo Debut End If
End Sub
Sub Ouvrirsch(Optional a As Boolean) 'ouvre le fichier schéma s'il n'est pas ouvert
MsgBox ("j'ouvre le schéma mais je ne le trouve pas")
End Sub
Bonjour Emcy,
L'utilisation de GetObject(,.....) est utile pour savoir si une instance de l'application est déjà ouverte en mémoire. Si tu
as réussi à initialer ta variable objet "SelectPower" à la première exécution de la ligne de code ... Pourquoi ne pas
utiliser ta variable objet "SelectPower". Cette dernière est déjà initialée et elle est valide pour tout le temps que dure
l'exécution de ta macro ... (selon l'endroit où elle a été définie).
'----------------------------
Dim SelectPOWER As object
SelectPOWER = GetObject(,"PowerLogic.Application").ActiveDocument
if err<>0 then
Err=0
Msgbox "Aucune instance de ce fichier est présentement ouvert."
Else
Msgbox "Ok, PowerLogic est ouvert."
End if
'----------------------------
Salutations!
P.S. Il est bon de spécifier ce que tu recherches. Comme ton code n'est pas représentatif de ce que tu veux obtenir comme
résultat (il ne fonctionne pas) ...il est difficille de déduire l'objectif de la procédure !
Salutations!
"Emcy" <anonymous@discussions.microsoft.com> a écrit dans le message de news:090801c48b73$95a9a740$a601280a@phx.gbl...
je repose ma question vu que personne ne m'a répondu :
j'ai fait une macro qui gère des erreur
ce que je ne comprend pas c'est que lorsque j'arrive pour
la deuxième fois
(la première fois, ça marche) sur la ligne "Set
SelectPOWER = GetObject(,
"PowerLogic.Application").ActiveDocument" la gestion
d'erreur ne fonction
pas
j'ai le message : "un composant activeX ne peut pas créer
d'objet"
Description du fonctionnement
- ErrorOn est initialisé à false
-lorsque j'arrive sur la ligne "Set SelectPOWER GetObject(,
"PowerLogic.Application").ActiveDocument" une erreur est
detectée alors ça
me renvoie à l'étiquette OnErrorObject
-ensuite dans la boucle d'erreur, ErrorOn est mis à
true , la macro
Ouvrirsch est lancé et pour finir on est renvoyé à
l'etiquette Debut
- je ne sais pas pourquoi, lorsqu'on arrive encore une
fois "Set SelectPOWER
= GetObject(, "PowerLogic.Application").ActiveDocument"
le gestionnaire
d'erreur ne fonctionne pas
Sub ConnectionPowerLogic5()
ErreurON = False
Debut:
On Error GoTo OnErrorGetObject 'Routine de contrôle
d'erreur
Set SelectPOWER = GetObject
(, "PowerLogic.Application").ActiveDocument
Set SelectPOWER = Nothing
Exit Sub
OnErrorGetObject:
On Error GoTo 0
Set SelectPOWER = Nothing
If ErreurON = True Then
MsgBox ("Impossible de se connecter à Power
Logic !")
Else
MsgBox ("Probleme de connection avec Power
Logic : aucun schéma
ouvert n'a été detecté !" & vbCr & "Le programme va
essayer d'ouvrir le
schéma qu'il y a dans le répertoire de travail.")
ErreurON = True
Call Ouvrirsch
GoTo Debut
End If
End Sub
Sub Ouvrirsch(Optional a As Boolean) 'ouvre le fichier
schéma s'il n'est pas
ouvert
MsgBox ("j'ouvre le schéma mais je ne le trouve pas")
L'utilisation de GetObject(,.....) est utile pour savoir si une instance de l'application est déjà ouverte en mémoire. Si tu as réussi à initialer ta variable objet "SelectPower" à la première exécution de la ligne de code ... Pourquoi ne pas utiliser ta variable objet "SelectPower". Cette dernière est déjà initialée et elle est valide pour tout le temps que dure l'exécution de ta macro ... (selon l'endroit où elle a été définie).
'---------------------------- Dim SelectPOWER As object
SelectPOWER = GetObject(,"PowerLogic.Application").ActiveDocument if err<>0 then Err=0 Msgbox "Aucune instance de ce fichier est présentement ouvert." Else Msgbox "Ok, PowerLogic est ouvert." End if '----------------------------
Salutations!
P.S. Il est bon de spécifier ce que tu recherches. Comme ton code n'est pas représentatif de ce que tu veux obtenir comme résultat (il ne fonctionne pas) ...il est difficille de déduire l'objectif de la procédure !
Salutations!
"Emcy" a écrit dans le message de news:090801c48b73$95a9a740$ je repose ma question vu que personne ne m'a répondu :
j'ai fait une macro qui gère des erreur ce que je ne comprend pas c'est que lorsque j'arrive pour la deuxième fois (la première fois, ça marche) sur la ligne "Set SelectPOWER = GetObject(, "PowerLogic.Application").ActiveDocument" la gestion d'erreur ne fonction pas
j'ai le message : "un composant activeX ne peut pas créer d'objet"
Description du fonctionnement - ErrorOn est initialisé à false -lorsque j'arrive sur la ligne "Set SelectPOWER GetObject(, "PowerLogic.Application").ActiveDocument" une erreur est detectée alors ça me renvoie à l'étiquette OnErrorObject -ensuite dans la boucle d'erreur, ErrorOn est mis à true , la macro Ouvrirsch est lancé et pour finir on est renvoyé à l'etiquette Debut - je ne sais pas pourquoi, lorsqu'on arrive encore une fois "Set SelectPOWER = GetObject(, "PowerLogic.Application").ActiveDocument" le gestionnaire d'erreur ne fonctionne pas
Sub ConnectionPowerLogic5()
ErreurON = False
Debut: On Error GoTo OnErrorGetObject 'Routine de contrôle d'erreur Set SelectPOWER = GetObject (, "PowerLogic.Application").ActiveDocument
Set SelectPOWER = Nothing Exit Sub
OnErrorGetObject: On Error GoTo 0 Set SelectPOWER = Nothing
If ErreurON = True Then MsgBox ("Impossible de se connecter à Power Logic !") Else MsgBox ("Probleme de connection avec Power Logic : aucun schéma ouvert n'a été detecté !" & vbCr & "Le programme va essayer d'ouvrir le schéma qu'il y a dans le répertoire de travail.") ErreurON = True Call Ouvrirsch GoTo Debut End If
End Sub
Sub Ouvrirsch(Optional a As Boolean) 'ouvre le fichier schéma s'il n'est pas ouvert
MsgBox ("j'ouvre le schéma mais je ne le trouve pas")