arréter affichage usf lors proc initialize

  • Initiateur de la discussion Initiateur de la discussion Blafi
  • 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 !

Blafi

XLDnaute Occasionnel
Bonjour à tous,

N'ayant pas trouvé la solution sur le forum, je me résoud à vous poser mon pb :


Dans le fichier joint, je lance un usf qui m'affiche dans une combobox, le nom des feuilles du classeur dont le nom commence par "présences", pour ensuite sélectionner une feuille pour y travailler.

Ma macro marche très bien mais je rencontre un pb lorsqu'aucune feuille n'a un nom commençant par "présences". J'ai donc cherché à interrompre l'affichage de l'usf en plaçant un if dans la procédure userform_initialize qui affiche un message disant "pas de feuille...". Cela marche bien mais l'usf s'affiche quand même et c'est ce que je voudrais éviter...
Pour se rendre compte de la chose, il faut naturellemt hanger le nom actuel des feuilles
Comment solutionner le pb?

Merci d'avance pour vos suggestions
 

Pièces jointes

Dernière édition:
Re : arréter affichage usf lors proc initialize

Bonsoir Blafi,

Ci-joint ton fichier modifié.

Tu remarqueras que j'ai déplacé ton code dans l'événement Activate au lieu de Initialize.

J'ai vérifié en renommant les feuilles, ça fonctionne. J'ai conservé les modifications pour que tu puisses vérifier.

Cordialement.
 

Pièces jointes

Re : arréter affichage usf lors proc initialize

Bonsoir.
On peut y arriver autrement par une Public Sub dans l'userform: (elle en constitue du coup une méthode qui peut remplacer Show) :
VB:
Public Sub Afficher()
Dim Sht As Worksheet

For Each Sht In Worksheets
    If Sht.Name <> "Menu" Then
        If Sht.Name Like "Présentes *" Then
              ComboBox1.AddItem Sht.Name
        End If
    End If
Next Sht

ComboBox1.ListIndex = -1

If ComboBox1.ListCount = 0 Then
   MsgBox "Il n'y a pas de feuille de présences", vbCritical + vbOKOnly
Else
   Me.Show
End If
End Sub
Et dans un module ordinaire :
VB:
Sub Rectangle1_QuandClic()
USF5.Afficher
End Sub
L'idée c'est donc de ne pas l'afficher s'il n'y a rien à afficher, c'est plus logique que d'essayer d'empêcher l'affichage après qu'il ait été demandé pour rien !

Cordialement.
 
Dernière édition:
Re : arréter affichage usf lors proc initialize

Bonjour,

Je prends connaissance ce matin de vos réponses... Merci Dranreb et Papou-net, je vais essayer les 2 solutions mais c'est vrai qu'en y réfléchissant j'avais pensé, comme Dranreb, de ne pas afficher l'usf s'il n'y avait rien à afficher... le tout était d'arriver à le faire...

Bonne journée et à bientôt sur cet excellent forum.

Nota : comment marquer une discussion comme résolue ? je n'ai pas trouvé..
 
Re : arréter affichage usf lors proc initialize

Bonjour Blafi, Dranreb,

Juste pour info : en ce qui concerne ma solution, il suffit d'inverser 2 lignes pour ne pas voir USF5 s'il n'y a pas de feuilles de présence valide. Un aperçu fugitif du formulaire reste cependant présent. Ce qui n'est pas le cas dans la solution de Bernard.

Cordialement.
 
- 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

Discussions similaires

Réponses
1
Affichages
687
R
Réponses
0
Affichages
911
R
A
  • Question Question
Réponses
3
Affichages
2 K
Alexandre
A
Retour