Comment afficher un userform Excel depuis word

Signaler
Messages postés
43
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
20 février 2013
-
Messages postés
43
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
20 février 2013
-
Bonjour, lorsque je suis dans word je souhaite afficher le userform qui se trouve deja dans excel.

Je pense qui faut que je crée un object pour Excel:
Public Applixls As Object

Puis je l'appel grace a la fonction GetObject (mais je sais pas commet)

Puis un truc du genre:
Applixls.userform1.show

Avez-vous une idée?

3dflix

4 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

Dim Applixls As Object, MonWBK As Object
Set
Applixls = GetObject(, "Excel.Application") 'ici on essaye de recuperer une session excel existante

If Nothing Is
Applixls Then 'si pas de process excel en cours
    Set
Applixls = CreateObject("Excel.Application") 'on lance excel

    Set
MonWBK =
Applixls.Workbooks.Open(c:\blablabla...xls)

else
    On Error Resume Next
    Applixls.
Workbooks("blablabla...xls).Activate
    if not err = 0 then

        Set MonWBK =
Applixls.Workbooks.Open(c:\blablabla...xls)
    else
        set
MonWBK = Applixls.
ActiveWorkbook
    End if
End if

MonWBK.Userform1.Show

Voila j'ai pas testé mais cela devrait etre quelque chose comme ça

A+
Messages postés
43
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
20 février 2013

Merci BigFish.

ok pour tout le code.
Sauf pour le : MonWBK.Userform1.show

Malheureusement il semblerait que les userforms ne soient pas dans le Workbook.

Zut....

3dflix
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

ce que tu pourrais faire c'est de creer une petite sub routine dans ton fichier excel pour afficher le userform du style :

Sub AfficherForm ()
    Load Userform1
    Userform1.Show
End Sub

et dans word si on reprend ce qui a deja ete fait:

Dim Applixls As Object, MonWBK As Object

Set Applixls = GetObject(, "Excel.Application") 'ici on essaye de recuperer une session excel existante

If Nothing Is Applixls Then 'si pas de process excel en cours
    Set Applixls = CreateObject("Excel.Application") 'on lance excel
    Set MonWBK = Applixls.Workbooks.Open(c:\blablabla...xls)
else
    On Error Resume Next
    Applixls.Workbooks("blablabla...xls).Activate
    if not err = 0 then
        Set MonWBK = Applixls.Workbooks.Open(c:\blablabla...xls)
    else
        set MonWBK = Applixls.ActiveWorkbook
    End if
End if
Applixls.Run "AfficherForm"

Cette fois j'ai teste et cela fonctionne
Messages postés
43
Date d'inscription
dimanche 9 mars 2003
Statut
Membre
Dernière intervention
20 février 2013

Je confirme, tu as réussi!
Mais voila qu'un nouveau probleme apparait!

En réalité j'execute le userform Excel depuis Catia V5 (Conception 3d assistée par ordinateur) avec une macro en vbscript.
Donc ça fonctionne aussi sauf que j'ai besoin de mettre le parametre ShowModal du userform a false. Et quand je fais ça le VBS affiche le userform poursuit son chemin (puisque jsuis en non modal). la macro VBS ce termine et là ça ferme mon userform... ??? c'est normal? ça fait pas ça avec Excel et Word.
3dflix