Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Petite question sur les Userform

  • Initiateur de la discussion Initiateur de la discussion zack22
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Z

zack22

Guest
Bonjour,

Je persévère
J'ai crée un Userform1 qui ouvre un (sous menu "communs" Userform 2)
Je ne vois pas comment je pourrais lié bouton userform1 + boutonuserform2 à une feuilles MAIS que si on clic sur bouton2 userform1 + boutonuserform2 ouvre une autre feuille ?
Y a bien la solution de crée autant d userform "communs" que de bouton mais si vous avez une autre solution 🙂

Merci pour votre aide et conseil
 

Pièces jointes

Re : Petite question sur les Userform

J'ai aussi un problème d'affichage après l Userform2 , j aimerais afficher le classeur en popup (actuellement il reste minimise)

Merci
 
Re : Petite question sur les Userform

Bonsoir.

À mon avis ça passe par une procédure Public dans l'Userform2. Soit une Public Sub à laquelle vous passez en paramètres 4 expressions Worksheet représentant les 4 feuilles à activer par Userform2 selon le bouton, Soit une Public Function qui renvoie un code selon le bouton utilisé à l'Userform1 qui fera lui l'activation appropriée. Attention: une procédure Public dans un module objet doit être invoquée précédée du nom de l'objet suivi d'un point. N'oubliez pas d'y mettre un Me.Show

Par exemple dans Userform2:
VB:
Option Explicit
Dim Texte As String
Public Function SousCommande() As String
Me.Show
SousCommande = Texte
Unload Me
End Function
Private Sub CommandButton1_Click()
Texte = CommandButton1.Caption
Me.Hide
End Sub
Private Sub CommandButton2_Click()
Texte = CommandButton2.Caption
Me.Hide
End Sub
Private Sub CommandButton3_Click()
Texte = CommandButton3.Caption
Me.Hide
End Sub
Private Sub CommandButton4_Click()
Texte = CommandButton4.Caption
Me.Hide
End Sub
Et ce petit test à développer dans Userform1 :
VB:
Private Sub X_Click()
Me.Hide
Select Case UserForm2.SousCommande
   Case "outillage": MsgBox "C'est de l'outillage"
   Case Else: MsgBox "Ce n'est pas de l'outillage"
   End Select
Unload Me
End Sub
 
Dernière édition:
Re : Petite question sur les Userform

Merci pour ta réponse.

C est mon 2 jour sur excel.
Je ne comprends pas tous les mots 🙂
Merci pour la piste je m en vais googéliser dans ce sens
 
Re : Petite question sur les Userform

Voir en Edit proposition avec la 2ième solution.

Remarque: Me est un mot clé qui désigne l'objet auquel est attaché le code, en l'occurrence l'Userform.
 
Dernière édition:
Re : Petite question sur les Userform

Merci pour ta réponse.
Dans l userform2 le bouton par exemple "outillage" doit ouvrir une feuille du classeur.

Mais en fonction du premier bouton de l userform1 la feuille sera différente.


Un exemple : Clic sur bouton x (usf1) et clic sur outillage (usf2) ouvre la feuille outillage de Mr x
Clic sur bouton y (usf1) et clic sur outillage (usf2) ouvre la feuille outillage de Mr y

Merci pour ton aide
 
Re : Petite question sur les Userform

Oui j'ai bien compris mais pourquoi devrait-ce être l'Userform2 qui activerait cette feuille plutôt que l'Userform1 ?
Il va de soit qu'au lieu du MsgBox "C'est de l'outillage", c'est votre activation de feuille que vous devez programmer. Vous savez laquelle c'est puisque vous êtes encore dans la procédure du bouton X de l'Userform1. Et vous devez faire les 3 autres Case pour les 3 autres boutons. Réserver le Case Else au bouton menu
VB:
Case Else: Me.Show: Exit Sub

Si vous tenez à ce que ce soit l'Userform2 qui le fasse, alors il faut lui indiquer les 4 feuilles à ouvrir pour chacun de ses boutons. Ce n'est pas plus simple.

Remarque: s'il y a une règle fiable pour construire le nom de la feuille en connaissant le bouton utilisé dans l'Userform1, il suffit de transmettre son caption à une Public Sub de l'Userform2 cette fois.
 
Dernière édition:
Re : Petite question sur les Userform

Merci pour ta réponse.
J'ai 12 collègues (usf1) , mais en usf2 (c est la liste commune (outillage...etc)
Je lance la commande de usf2, si je cherche outillage du collègue x.Il me semble de taper Mr x et puis outillage et on arrive sur sa feuille.

Pour la commande dans le bouton usf2

sheets("feuil1").Activate mais en fonction de la selection du collegue sur usf1
Je dois aller chercher la variable (Me ?) pour changer le N° de feuille

Merci
 
Re : Petite question sur les Userform

Lol ...j arrive pas à me relire
Je serais étonné que tu comprennes quelque chose

J'ai 12 collègues (usf1) , mais en usf2 (c est la liste commune (outillage...etc)

La variable que je tape en usf1 (me?), doit être récupéré pour quand je tape sur le bouton outillage usf2
J'ai outillage + variable affiche feuille x ou y.
 
Re : Petite question sur les Userform

Vous parlez de taper "Mr x" maintenant ? De toute façon je croyais que ce n'était que des exercices de communication d'informations entre Userform. C'est clair que le plus pratique concrètement serait un seul Userform avec un ComboBox en tête pour choisir le collègue, et les 4 boutons en dessous.
 
Re : Petite question sur les Userform

Bon ben il ne vous reste qu'a faire dans Userform1 les :
VB:
Private Sub CommandButton1_Click()
Me.Hide
Select Case UserForm2.SousCommande
   Case "outillage": Feuil1.Activate
   Case "vetement": Feuil2.Activate
   Case "carte": Feuil3.Activate
   Case "machine": Feuil4.Activate
   Case Else: Me.Show: Exit Sub: End Select
Unload Me
End Sub

Private Sub CommandButton2_Click()
Me.Hide
Select Case UserForm2.SousCommande
   Case "outillage": Feuil4.Activate
   Case "vetement": Feuil5.Activate
   Case "carte": Feuil6.Activate
   Case "machine": Feuil7.Activate
   Case Else: Me.Show: Exit Sub: End Select
Unload Me
End Sub

Etc.
 
Re : Petite question sur les Userform

Parfait 🙂
J'ai refait tout le fichier, bon exercice

J'ai juste encore une petite demande
quand tu as cliquer sur le bouton (final) de usf2, il va bien sur la bonne feuille mais le classeur reste en minimiser dans la barre de tâche.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
390
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
497
Réponses
16
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…