Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2011, 16h50   #1
Nouveau Membre du Club
 
Homme tof tim
Technicien maintenance
Inscription : septembre 2011
Messages : 101
Détails du profil
Informations personnelles :
Nom : Homme tof tim
Localisation : Belgique

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : septembre 2011
Messages : 101
Points : 39
Points : 39
Bonjour à tous,

Voilà

3 fichiers ouverts
2 commandBoutons


je souhaiterai à partir du commanbutton1 du UserForm1 du fichier1 lancer l'UserForm1 du fichier2 ou commandbutton2 du UserForm1 du fichier1 lancer l'UserForm1 du fichier3

Merci d'avance pour votre aide...
Tim

voici ce que j'ai

mon fichier 1
module1
Code :
1
2
3
4
5
 
Public Wbk As Workbook
Public Const Rep = "C:\Excel\test"
Public Const FichierBDC = "RECH.xls"
Public Const FichierBDC = "BDC.xls"
ThisWorkbook
Code :
1
2
3
4
Private Sub Workbook_Open()
    Set Wbk1 = Workbooks.Open(Filename:=Rep & "\" & FichierBDC)
    Set Wbk2 = Workbooks.Open(Filename:=Rep & "\" & FichierRECH)
End Sub
cette partie de programme fonctionne lorsque je lance mon premier fichier menu.xls il me lance bien mes deux autres fichiers "BDC.xls" et "RECH.xls"

dans mon UserForm1 de mon fichier1 "MENU.xls" j'ai deux commandbutton1 et 2 le 1er doit lancer UserForm1 du fichier "BDC.xls" le second doit lancer UserFform1 du fichier "RECH.xls"

j'espère être assez clair.

Bien à vous.
Tim.
timtof2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 21h37   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
C'est une usine à gaz que tu prépare là.
Dans Fichier2 et Fichier3 crée dans un module public ce petit code
Code :
1
2
3
4
Sub OuvreUSF()
 
UserForm1.Show
End Sub
Et dans ton Fichier1
Code :
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()
 
Run Wbk1.Name & "!OuvreUSF"
End Sub
 
Private Sub CommandButton2_Click()
 
Run Wbk2.Name & "!OuvreUSF"
End Sub
Avec les déclarations suivantes dans un module public de Fichier1
Code :
1
2
3
4
5
Public Wbk1 As Workbook
Public Wbk2 As Workbook
Public Const Rep = "C:\Excel\test"
Public Const FichierRECH = "RECH.xls"
Public Const FichierBDC = "BDC.xls"
Wbk1 et Wbk2 sont initialisées dans l'Open de Fichier1
Code :
1
2
3
4
5
Private Sub Workbook_Open()
 
Set Wbk1 = Workbooks.Open(Rep & "\" & FichierBDC)
Set Wbk2 = Workbooks.Open(Rep & "\" & FichierRECH)
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/10/2011, 22h44   #3
Nouveau Membre du Club
 
Homme tof tim
Technicien maintenance
Inscription : septembre 2011
Messages : 101
Détails du profil
Informations personnelles :
Nom : Homme tof tim
Localisation : Belgique

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : septembre 2011
Messages : 101
Points : 39
Points : 39
...

je te promets une fois ok je place sur le site car son utilité devrait en plaire à plus d'un...

Merci je test ton code...

mercatog,

j'ai mis en place comme je voulais et je n'aarive pas à retourner sur mon USF de mon fichier 1...doit y avoir une astuce...

mon fichier1 "MENU" dans USF1
Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub BDC_Click()
    Run Wbk3.Name & "!OuvreUSF"
End Sub
 
Private Sub RECH_Click()
    Run Wbk2.Name & "!OuvreUSF"
End Sub
 
Private Sub Quitter_Click()
    Unload Me
End Sub
dans le module
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Wbk1 As Workbook
Public Wbk2 As Workbook
Public Wbk3 As Workbook
 
Public Const Rep = "C:\Excel\test\test"
Public Const FichierMENU = "MENU.xlsm"
Public Const FichierBDC = "BDC.xlsm"
Public Const FichierRECH = "RECH.xlsm"
 
 
Sub OuvreUSF()
 
UserForm1.Show
End Sub
dans le ThisWorkbook
Code :
1
2
3
4
5
6
7
Option Explicit
 
Private Sub Workbook_Open()
Set Wbk1 = Workbooks.Open(Rep & "\" & FichierMENU)
Set Wbk2 = Workbooks.Open(Rep & "\" & FichierBDC)
Set Wbk3 = Workbooks.Open(Rep & "\" & FichierRECH)
End Sub
dans fichier2 "BCD" USF1 et ds un commandbutton"Retour"
Code :
1
2
3
Private Sub Retour_Click()
    Run Wbk0.Name & "!OuvreUSF"
End Sub
voilà mon chef d'oeuvre de méga débutant...surprise ça marche pas...
timtof2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 22h55   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
C'est quoi ce fichier MENU.xlsm?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 23h12   #5
Nouveau Membre du Club
 
Homme tof tim
Technicien maintenance
Inscription : septembre 2011
Messages : 101
Détails du profil
Informations personnelles :
Nom : Homme tof tim
Localisation : Belgique

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : septembre 2011
Messages : 101
Points : 39
Points : 39
je me disais bien aussi...que tu le verrais...

je suis obligé de placer le m dans "xlsm" car sinon xl me dit" ne peut pas enregistrer ds des classeurs sans macro

donc en faisant comme ça ça fonctionne pour moi...as tu une autre idée ??

le fichier "MENU.xlsm" est mon ficheir de départ fichier1
timtof2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 23h15   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Tu ouvre ton Fichier1 MENU, mais pourquoi tu veux l'ouvrir encore une autre fois avec l'évènement Open??

Regarde mon code proposé initialement, ne rajoute rien!
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/10/2011, 23h22   #7
Nouveau Membre du Club
 
Homme tof tim
Technicien maintenance
Inscription : septembre 2011
Messages : 101
Détails du profil
Informations personnelles :
Nom : Homme tof tim
Localisation : Belgique

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : septembre 2011
Messages : 101
Points : 39
Points : 39
oui j'avais bien vu ça mais je me suis dit comment faire pour ceci
Code :
1
2
3
Private Sub Retour_Click()
    Run Wbk1.Name & "!OuvreUSF"
End Sub
et ainsi
Code :
Set Wbk1 = Workbooks.Open(Rep & "\" & FichierMENU)
je pensais que ça me permettrai de retourner dans mon fichier1"MENU" et de retomber sur mon USF1 du fichier1

ok je comprends mieux ce que tu veux dire mais alors comment fais tu pour retourner sur le fichier1"MENU" et dans sonUSF1
timtof2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 23h31   #8
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Allons pas d'absurdités

Tu ouvres manuellement ton Fichier1
Les 2 autres fichiers Fichier2 et Fichier2 s'ouvrent aussi (suite au code mis dans l'évènement Open de ton Fichier1). Ces 2 fichiers sont mémorisés dans les 2 variables publiques Wbk1 et Wbk2.

A partir de Fichier1 tu ouvre l'Userform1 appartenant à Fichier1

Sur cet userform, tu as CommandButon1 qui permet d'ouvrir l'userform UserForm1 de Fichier2 à l'aide de ce code
Code :
1
2
3
4
Private Sub CommandButton1_Click()
 
Run Wbk1.Name & "!OuvreUSF"
End Sub
Quand tu fermes UserForm1 de Fichier2, tu te retrouve avec UserForm1 de Fichier1 initialement ouvert (qui attendait gentiment)

Sinon, pour information, le classeur d'où est lancé le code s'appelle ThisWorkbook et le classeur actif ActiveWorkbook
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2011, 00h02   #9
Nouveau Membre du Club
 
Homme tof tim
Technicien maintenance
Inscription : septembre 2011
Messages : 101
Détails du profil
Informations personnelles :
Nom : Homme tof tim
Localisation : Belgique

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : septembre 2011
Messages : 101
Points : 39
Points : 39
merci à toi..J’essaie de ne pas trop en dire des absurdités mais c'est tellement passionnant le VBA...

maintenant je cours...vers l'élaboration correct de mon appli.

Encore bien merci de tes conseils si précieux...
tim

mercatog, comment je fais pour sortir du fichier2"BDC" ou fichier3"RECH" de leur userform1 ?

c'est à dire sur le fichier2"BDC" UserForm1 commandbutton1
Code :
1
2
3
4
Private Sub commandbutton1_Click()
Unload UserForm1    ' du fichier2"BDC"
'UserForm1.Show     ' du fichier1"MENU"
End Sub
désolé je viens de voir la suite de ta comm...ThisWorkbook et Active...

je vais chercher et peut être réfléchir pour changer...
merci
timtof2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 00h07   #10
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Citation:
Quand tu fermes UserForm1 de Fichier2, tu te retrouve avec UserForm1 de Fichier1 initialement ouvert
Tu n'as pas ça?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 00h12   #11
Nouveau Membre du Club
 
Homme tof tim
Technicien maintenance
Inscription : septembre 2011
Messages : 101
Détails du profil
Informations personnelles :
Nom : Homme tof tim
Localisation : Belgique

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : septembre 2011
Messages : 101
Points : 39
Points : 39
sisi ne rigole pas je l'entends d'ici...

ça marche. parfois au lieu de rentrer par la porte d'entrée je fais le tour...!!!
pourquoi faire simple quand on peut faire compliquer...


merci cette fois est la bonne...quelle patience tu as...!!!
timtof2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 00h19   #12
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Enfin! Dieu soit loué
Surtout, j'ai l'impression que tu lis en diagonale et à la hâte.
Relis chaque phrase des réponses #3 et #12

Bonne nuit.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2011, 00h22   #13
Nouveau Membre du Club
 
Homme tof tim
Technicien maintenance
Inscription : septembre 2011
Messages : 101
Détails du profil
Informations personnelles :
Nom : Homme tof tim
Localisation : Belgique

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Bâtiment Travaux Publics

Informations forums :
Inscription : septembre 2011
Messages : 101
Points : 39
Points : 39
c'est bien ce que j'ai fait cette fois et c'est là que j'ai vu tes infos si précieuses...mais tu as raisons je vais trop vite...si tu savais le temps que je passe pour avancer...tu ne le croirais pas !!!

thank you again :
timtof2011 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h26.


 
 
 
 
Partenaires

Hébergement Web