Menu pour lancement de macros avec UserForm

Gudo

XLDnaute Junior
Bonjour

J’ai plusieurs macros sur un classeur et je souhaiterais passer par un menu pour les activer.

J’ai réalisé plusieurs menus en cascades avec des UserForm
Au niveau des menus en cascade tout ce passe bien
Le problème c’est quand j’active une macro

Si je clique sur Macro1 (2ème sous menu)
La macro s’active et je sors bien de l’UserForm
Mais cela ne fonctionne pas pour les macros 2 et 3

Il y a quelque chose qui m’échappe

J’ai réalisé un petit exemple que je joins

Voici aussi l’UserForm qui pose problème
Private Sub UserForm3_Click()
End Sub
Private Sub UserForm_Activate()
Me.Top = 162
Me.Left = 275
End Sub
Private Sub commandbutton1_click()
Macro1
Unload Me
End Sub
Private Sub commandbutton2_click()
Macro2
Unload Me
End Sub
Private Sub commandbutton3_click()
Macro3
Unload Me
End Sub
Private Sub UserForm_Click()
Unload Me
End Sub


Merci d'avance
 

Pièces jointes

  • Menu Userform.xls
    56.5 KB · Affichages: 88

Robert

XLDnaute Barbatruc
Repose en paix
Re : Menu pour lancement de macros avec UserForm

Bonjour Gudo et bienvenu, bonjour le forum,

Tu as certainement créé plusieurs CommandButton puis supprimé les premiers. Le code ne correspond plus. Dans VBA, double-clique sur chaque CommandButton de l'UserForm3 et affecte-lui le bon code...
 

Gudo

XLDnaute Junior
Re : Menu pour lancement de macros avec UserForm

Bonsoir Robert

Merci pour ton aide

J’étais persuadé que mon manque de connaissances était la cause de mon problème, alors qu’il s’agissait en fait tout simplement d’une banale étourderie !
Je suis pour le moins confus, J’aurais dû au moins vérifier cela avant de demander de l’aide.

C’est parfaitement Ok maintenant

Cependant, il me reste une chose que je n’arrive pas à faire :
Je souhaiterais mis à part la touche fin qui sort totalement de la procédure, c’est pouvoir quitter l’UserForm3 sans quitter pour autant l’UserForn 2 qui est resté à l’écran en arrière plan.

Merci d'avance si tu peux encore me donner encore un coup de main

A+
 

Gudo

XLDnaute Junior
Re : Menu pour lancement de macros avec UserForm

Bonsoir

Je suis toujours à la recherche du script qui me permettrait de quitter l'UserForm3 pour revenir à l'UserForm2 resté ouvert en Arrière plan

Si je quitte l'UserForm3 et que j'essaye de recharger l'UserForm2, j'ai un message d'erreur que c'est imposible, Ce qui est logique puisque il est déjà présent

Si j'essaye de quiter l'ensemble des UserForm présents et de recharger l'UserForm2, j'arrive à la même erreur

J'ai bien essayé avec l'instruction Hide, mais cela ne donne rien de plus

Existe-il une syntaxe permettant de quitter un seul UserForm ?

Merci
 
G

Guest

Guest
Re : Menu pour lancement de macros avec UserForm

Bonjour,

En enlevant les Unload Me dans:
Code:
Private Sub commandbutton1_click()
UserForm3.Show
Unload Me
End Sub

gudo post #3 à dit:
J’étais persuadé que mon manque de connaissances était la cause de mon problème

Je te recommande vivement de te trouver un tutoriel ou un bouquin pour apprendre les bases.

A+
 
Dernière modification par un modérateur:

Gudo

XLDnaute Junior
Re : Menu pour lancement de macros avec UserForm

Bonjour Hasco

Merci pour ton aide

Effectivement un bon bouquin, me serait bien utile
Ce n’est pas que j’ai fait la passe sur cet achat
J’ai même acheté un (Gros) guide spécifique sur le VBA
Malheureusement celui-ci fait la passe total sur les UserForm !!!

J’ai bien cherché sur le Net, un didacticiel sur les UserForm
Mais je n’ai trouvé rien de probant
Soit trop simpliste, soit trop avancé pour moi
Et surtout rien sur la gestion des UserForm en Cascade !
 

Gudo

XLDnaute Junior
Re : Menu pour lancement de macros avec UserForm

Bonjour Patoq

Merci également pour ton aide

C’est une approche différente.

Dans le cas présent, je souhaite conserver le premier UserForm en arrière plan
Mais je ne connaissais pas cette syntaxe.

Je ne vois pas cependant à quoi sert « Load UserForm2 » ?
Car avec ou sans, le résultat est identique.

Comme je viens de le dire je souhaite conserver à l’écran le 1er UserForm
Ce qui pourrait m’intéresser par contre,
Mais là je ne sais pas du tout si c’est réalisable,
C’est en cliquant sur le bord du premier UserForm, de le ramener en avant plan
et du coup de mettre le 2ème UserForm en arrière plan ?
 
G

Guest

Guest
Re : Menu pour lancement de macros avec UserForm

Re,

Mets la propriété ShowModal de tes UserForm à False

Regarde dans l'aide excel les différences entre Load et Show.
Le premier charge (en mémoire) le userform sans l'afficher le second le charge et l'affiche.

L'aide VBA excel est un outil précieux.

enlève le Unload me dans l'évènement UserForm_Click du deuxième sinon quand tu cliqueras dessus pour y revenir, il se fermera.
A+
 
Dernière modification par un modérateur:
G

Guest

Guest
Re : Menu pour lancement de macros avec UserForm

Re,

Le but était de répondre à ta question:
C’est en cliquant sur le bord du premier UserForm, de le ramener en avant plan et du coup de mettre le 2ème UserForm en arrière plan ?

en Mettant False à ShowModal toutes les instructions qui suivent l'instruction Show sont exécutées.

A+
 

patoq

XLDnaute Occasionnel
Re : Menu pour lancement de macros avec UserForm

Re gudo
Je savais pas quoi faire j'ai tenté une nouvelle approche avec 1 seul userform
Regarde et dis moi ce que tu en penses
 

Pièces jointes

  • Menu Userform_perso2.xlsm
    23.9 KB · Affichages: 55

Gudo

XLDnaute Junior
Re : Menu pour lancement de macros avec UserForm

J’ai bien peur de ne pas trop suivre

Il est vrai que mon fichier exemple est mal fait
Le 1 UserForm est UserForm2
Et le 2ème est UserForm3
Cela ne facilite pas la communication !

Voici mes 2 UserForm remaniés

J'ai essayé de mettre à plisieurs endroits "ShowModal = False"

Au mieux cela désactive toutes mes macros
Mais si je clique sur le bord de l'UserForm2, il ne se passe rien à part un Bip

Code:
Private Sub UserForm2_Click()
End Sub
Private Sub UserForm_Activate()
Me.Top = 140.25
Me.Left = 225
End Sub
Private Sub commandbutton1_click()
UserForm3.Show
End Sub
Private Sub commandbutton2_click()
Macro2
Unload Me
End Sub
Private Sub commandbutton3_click()
Macro3
Unload Me
End Sub
Private Sub commandbutton4_click()
Unload Me
End Sub


Code:
Private Sub UserForm3_Click()
End Sub
Private Sub UserForm_Activate()
Me.Top = 162
Me.Left = 275
End Sub
Private Sub commandbutton1_click()
Macro2
Unload Me
Unload UserForm2
End Sub
Private Sub commandbutton2_click()
Macro3
Unload Me
Unload UserForm2
End Sub
Private Sub commandbutton3_click()
Macro4
Unload Me
Unload UserForm2
End Sub
Private Sub commandbutton5_click()
Unload Me
End Sub
Private Sub commandbutton4_click()
Unload Me
Unload UserForm2
End Sub
Private Sub UserForm_Click()
Unload Me
End Sub
 

Gudo

XLDnaute Junior
Re : Menu pour lancement de macros avec UserForm

Re, Patoq

Merci encore une fois pour ton aide

Mais cela ne va pas me convenir

En fait j’ai choisi de gérer mon menu de macros par plusieurs UserForm en cascade
D’abord parce-que j’ai pas mal de macros
Ensuite et surtout parce-que je veux les classer par catégorie

Cependant ton exemple, m’aide quand même parfaitement
car cela me permet de découvrir de nouvelles instructions
qui pourront certainement me servir.
 

Discussions similaires

Réponses
77
Affichages
6 K

Statistiques des forums

Discussions
312 169
Messages
2 085 928
Membres
103 045
dernier inscrit
AP78