VBA : ouverture d'un Userform sans passer par excel
Bonjour,
J'ai créer une interface userform sous VBA et je souhaite à présent pouvoir la lancer sans ouvrir une feuille Excel. Directement en laçant un un excutable à partir d'un répertoire sous Windows.
Après plusieurs échec, je me demande si ce que je souhaite faire est réellement possible.
merci pour toutes infos.
Ouvrir un Userform sans passer par Excel
Merci d'avoir répondu.
J'ai bien compris ton message. Mais lorsque que je lance mon fichier par l'auto open ma userform se s'affiche pas!!
Ce fichier est une macro : "toto.xls". la userform est comprise dedans. lorsque je lance le fichier "toto".xls, un tableur excel s"ouvre. Ensuite je dois cliquez sur "excéuter la macro". De cette manière ma Userform apparait et je pe continuer l'exécution de mon programme.
pour de ce qui est du script vbs, si je mets les deux dernière ligne ca marche pas!! excel s'ouvre et se ferme aussitot. si je mets "visible" à False rien se lance.
Voici le code que j'ai réalisé :
-Pour la macro "toto.xls" contenant la Userform nommé "page1". le code est écrit dans "module1" de VBA project
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Sub toto()
'toto macro
page1.Show
End Sub
Private Sub Workbook_Open()
page1.Show
End Sub |
script VBS :
Code:
1 2 3 4
|
Set obExcelApp=CreateObject("Excel.Application")
obExcelApp.Visible = True
obExcelApp.Workbooks.Open("C:\test\toto.xls") |
merci en espérant que j'ai été assez clair!! c pas évident d'expliquer les pbs.
Re: Ouvrir un Userform sans passer par Excel
Citation:
Envoyé par jemigo
Merci d'avoir répondu.
J'ai bien compris ton message. Mais lorsque que je lance mon fichier par l'auto open ma userform se s'affiche pas!!
Ce fichier est une macro : "toto.xls". la userform est comprise dedans. lorsque je lance le fichier "toto".xls, un tableur excel s"ouvre. Ensuite je d
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Sub toto()
'toto macro
page1.Show
End Sub
Private Sub Workbook_Open()
page1.Show
End Sub |
ote moi un doute ... la macro WorkBook_open et bien dans le code associé au classeur et non dans un module à part...?
sous VBA , dans arborescence à gauche clic bouton droit sur ThisWorKbook puis code ... :wink:
ouverture d'un Userform sans passer par Excel
concernant la technique à utiliser pour ouvrir un UserForm sans passer ouvrir Excel, j'ai utilisé la méthode de notre collègue MEGAXEL qui fonctionne très bien.
Pour cela, il faut créer un script VBS pour l'ouverture de la Userform ( voir les articles précédent), et enfin intégrer une fonction workbooks_open dans le module "THISWORKBOOK" dans cette fonction écrire le code suivant, qui permet d'afficher la Userform seulement au lancement du script VBS.
Code:
1 2 3
| Private Sub Workbook_Open()
Userform.Show
End Sub |
Cela fonctionne très bien!!
Cependant, lorsque nous avons une succession de plusieurs UserForm, comment peut faire réapparaitre la fenètre Excel à la suite de la dernière Userform ???
Car le Problème du script c'est que lorsqu'il ne voit plus de Userform, il ferme le fichier Excel et quitte.
ouverture d'un userform sans passer par excel
Code:
Application.WindowState = xlMaximized
ce code ne fonctionne pas!! car en fait c'est le script qu'il faut modifier.
Je viens d'enlever les lignes .quit et .close MEGAXEL, et mis l'affichage visible.
Le problème, c'est que l'application ne sera jamais fermé. Il faudrait pouvoir voir la page Excel et pouvoir fermer le fichier.
Car si on relance par la suite le script pour une deuxième exécution du programme, il ne peut le lancer. MOTIF : (fichier déja ouvert)
ouvrir un userform sans passer par excel
ok! en effet lorsque on enlève les deux dernières lignes du script VBS cela fonctionne et le feuillet excel s'ouvre bien et en lecture seule.
et on peut fermer la feuille excel en cliquant sur la croix en haut a droite!!
cependant comme dans le script on quitte pas l'application, le programme tourne toujours. Et on peut donc pas le relancer.
Je vais me pencher sur la question. Affaire a suivre....
ouvrir un userform sans passer par excel
Le problème c'ets que l'ouverture des Userforms et de Excel passe par un script VBS.
C'et au niveau du script VBS le problème!!!