Userform qui ne se masque pas...

fear3131

XLDnaute Nouveau
Bonjour à tous,

Je viens vous demander votre avis sur un problème que j'ai sur un travail excel que j'ai a faire pour mon école.
Je vous mets en pièce jointe le fichier pour que vous ayez tous les éléments.

Il s'agit d'un travail sur la création d'un menu pour un restaurant, établi à partir d'un tableur de statistique.
Une feuille "Menu" dont j'ai appliqué un Userform (appellé Menu) permet de sélectionner le mois d'activité que l'on veut afficher. Sur ces feuilles d'activité de l'année (12 feuilles), il y a également une liste déroulante pour aller sur différentes synthèses pré-calculées...

Bref, mon problème s'établit au moment où je demande un mois d'activité dans mon Userform.
Mon userform m'ammène correctement au mois d'activité demandé, sauf que la fenètre du Userform reste affichée, et demande à nouveau une validation pour se masquer...

Comment faire disparaître cette fenêtre ?
J'ai l'impression que c'est à cause d'une commande que j'ai établis dans visual basic qui l'empêche de masquer le userform. Puisque lorsque je demande d'aller sur l'activité en particulier, ma feuille "Menu" (avec le Userform) se masque, question d'aiguiller l'utilisateur et question de choix personnel.
Mais avec cette technique, redondance du Userform... Quelqu'un aurait une idée ?

Cordialement,
Bonne fête de fin d'année à toutes et à tous.
 

Pièces jointes

  • Classeur OMNES.xlsm
    279.1 KB · Affichages: 44
  • Classeur OMNES.xlsm
    279.1 KB · Affichages: 47
  • Classeur OMNES.xlsm
    279.1 KB · Affichages: 44

camarchepas

XLDnaute Barbatruc
Re : Userform qui ne se masque pas...

Bonsoir ,

Alors , je ne comprends pas a quzl endroit dans le code tu lance le userform , j'ai beau avoir fait une recherche avec le terme menu , j'ai trouvé l'endroit ou tu le masques mais pas l'endroit où tu le lances ???
 
Dernière édition:

grisan29

XLDnaute Accro
Re : Userform qui ne se masque pas...

bonsoir fear3131 et le forum
tu dits pas si tu veux que l'userform soit fermé ou seulement caché lors de l'opération que tu veux faire
Code:
Sub retour()

Worksheets("MENU").Visible = True
ActiveSheet.Visible = xlSheetVeryHidden
Worksheets("MENU").Activate
unload me 'ferme l'userform
End Sub
et
Code:
Sub retour()
menu.hide' menu est caché
Worksheets("MENU").Visible = True
ActiveSheet.Visible = xlSheetVeryHidden
Worksheets("MENU").Activate
menu .show 'menu est rouvert
End Sub
coucou camarchepas :cool:
Pascal
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Userform qui ne se masque pas...

Bonsoir fear3131, camarchepas, grisan29,

Pour le fun, une version un peu différente...

Le code est dans le module de Thisworkbook, dans le module du userform et dans module1.

Pour sélectionner une rubrique, double-cliquer sur la rubrique.

Pour changer de feuille, fermer la feuille en cliquant sur la case X de fermeture de la feuille en haut à droite .

Pour avoir accès au code, tapez Alt+ç quand le userform Menu est affiché.

Pour quitter le fichier, fermer le userform Menu par le X de fermeture.

nota 1 : toutes les shapes des feuilles ont été supprimées.
nota 2 : deux listes ont été nommées ListeMois et ListeRubriques en colonnes AA et AB de la feuille MENU. Ces listes servent à initialiser la ComboBox et la ListBox du Userform1 (propriété RowSource)
 

Pièces jointes

  • Classeur OMNES-v1.xlsm
    228 KB · Affichages: 55
Dernière édition:

fear3131

XLDnaute Nouveau
Re : Userform qui ne se masque pas...

Bonjour à tous,

Merci pour vos réponses !
Mapomme, vous avez fait un bon travail et je vais essayer de comprendre le code que vous avez appliqué pour ma culture perso malheureusement, si je donne ça à mon prof, il va vite repérer que ce n'est pas moi qui l'ai fait ;)
Mais c'est très gentil à vous :)

Alors autant pour moi, hier, en voulant alléger le fichier en pièce jointe qui était trop lourd, j'ai effacé par erreur un code dans la feuille MENU, le fameux :

Private Sub Worksheet_Activate()
Menu.Show

End Sub

Private Sub Worksheet_Deactivate()
Menu.Hide

End Sub

Voilà, à nouveau ça remarche. Je vous ai laissé une feuille 1 vierge ouverte pour vous montrer le problème encore plus apparent. En gros, si je laisse cette feuille 1 ouverte, remarquez que mon userform se ferme automatiquement dès que j'accède à une activité demandée (exemple Janvier).
Par contre, je masque ou je supprime cette feuille 1, là, j'ai le Userform qui réapparait lorsque ma feuille d'activité s'affiche ??

Je ne vois pas dans quel code je dois lui demander de se masquer ou de se fermer... J'ai essayé pas mal de combinaison mais je retombe toujours avec ce userform qui s'ouvre en permanence avec mon activité.

Cordialement,
Gabriel
 

Pièces jointes

  • Classeur OMNES.xlsm
    285.2 KB · Affichages: 42
  • Classeur OMNES.xlsm
    285.2 KB · Affichages: 41
  • Classeur OMNES.xlsm
    285.2 KB · Affichages: 41

fear3131

XLDnaute Nouveau
Re : Userform qui ne se masque pas...

Bonsoir à tous,

Toujours bloqué... Je reste novice en VBA donc peut être ai-je mal appliquer une commande ?

Je pense qu'il y a une sorte "d'interférence" entre :

ActiveSheet.Visible = xlSheetVeryHidden
et mon Userform Menu

Le fait est que j'utilise la commande ActiveSheet.Visible = xlSheetVeryHidden car j'avais envie d'orienter l'utilisateur seulement grâce aux boutons Retour Activité et Menu, affecté aux macros, et non qu'il puisse changer de feuille à sa guise. C'est pour ça qu'à chaque fois qu'il accède à une feuille, toutes les autres sont masquées... Or le Userform reste affiché lorsque je pars de la feuille MENU vers une activité quelconque (en supposant que je supprime la feuille1 vierge en bas).

Si quelqu'un à une idée, je suis preneur...
Cordialement,
Passez une bonne saint sylvestre, et bonne beuverie ce soir :D
 

Dranreb

XLDnaute Barbatruc
Re : Userform qui ne se masque pas...

Bonne année.
Disons qu'il vaudrait mieux, à mon avis, remettre la feuille xlSheetVeryHidden après seulement que l'autre soit activée.
Essayez peut être de faire le ménage de tout code qui fait à peu près la même chose un peu partout, au profit d'appels à une procédure, par exemple :
VB:
Présenter Worksheets(choix)
que vous pourriez écrire comme ça :
VB:
Public Sub Présenter(ByVal FeuiN As Worksheet)
Dim FeuiA As Worksheet
Set FeuiA = ActiveSheet
If FeuiN.Name <> FeuiA.Name Then
   FeuiN.Visible = xlSheetVisible
   FeuiN.Activate
   FeuiA.Visible = xlSheetVeryHidden
   End If
If FeuiN.Name = "MENU" Then Menu.Show
End Sub
 

mekrout

XLDnaute Nouveau
Bonjour/ Bonsoir

Je souhaiterais qu'à l'ouverture de l’UserForm, et quand je tape le Matricule ou le nom dans combobox1. Recherche les données dans 2feuilles, la feuille1 (liste1) s’affichent dans les textbox1 jusqu’à textbox36 et la feuille2 (liste2) dans les textbox38 jusqu’à textbox61 puis les enregistres dans la feuille3 (commande)..

Merci d'avance pour votre aide!

Mohammed

Cordialements
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Taille UserForm
Réponses
3
Affichages
355

Statistiques des forums

Discussions
312 241
Messages
2 086 519
Membres
103 241
dernier inscrit
Peyo33