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

Nanir

XLDnaute Occasionnel
Bonjour,

J'ai du mal a formuler sur vba...
En gros : j'ai une liste de valeur variable, qui correspond à des mois (ici nbmois).
J'aimerai qu'en lancant un userform, un test soit fait sur cette liste de valeur, afin d'y afficher uniquement les combobox qui m'interessent...

J'ai fait ca :


Private Sub UserForm_Initialize()

For Each c In Range("nbmois").Rows

For Each ctrl In Me.Controls

If TypeOf ctrl Is combobox Then

If combobox = c Then
combobox.Visible = True
End If

End If

Next ctrl

Next c

End Sub

Ca ne fonctionne pas... Pouvez vous m'aider à mieux comprendre le problème?
Merci beaucoup.
 
Re : Boucle sur combobox

Bonjour Nanir,

Ok, je comprend à peu près le but,sauf pour la partie là :

Code:
If combobox = c Then

Tu vérifie si la valeur de la combobox est le nom du mois ?

comment sais-tu quelles Combobox doivent être affichées ?
 
Re : Boucle sur combobox

Re,

à tester :

Code:
Private Sub UserForm_Initialize()
Dim c As Range, ctrl As Control
    For Each c In Range("nbmois").Cells
        For Each ctrl In Me.Controls
            If TypeName(ctrl) = "ComboBox" Then
                If ctrl.Name = c.Value Then
                    ctrl.Visible = True
                End If
            End If
        Next ctrl
    Next c
End Sub
 
Re : Boucle sur combobox

J'ai testé le code mais c'est toujours pas bon.

Ci-joint un fichier exemple.

J'aimerais que les mois affichés dans "nbmois" soient visibles dans l'userform... Et masquer les autres...
 

Pièces jointes

Re : Boucle sur combobox

Re,

Edit : Oups désolé

Tu as modifié le code que je t'ai donné
Je partais du principe que chaque contrôle était masqué (visible = false) par défaut
sinon le code peut le faire :

Code:
Private Sub UserForm_Initialize()
Dim c As Range, ctrl As Control
    For Each ctrl In Me.Controls
        If TypeName(ctrl) = "ComboBox" Then
             ctrl.Visible = False
        End If
    next ctrl
    For Each c In Range("nbmois").Cells
        For Each ctrl In Me.Controls
            If TypeName(ctrl) = "ComboBox" Then
                If ctrl.Name = c.Value Then
                    ctrl.Visible = True
                End If
            End If
        Next ctrl
    Next c
End Sub
 
Dernière édition:
Re : Boucle sur combobox

Petite adaptation pour les labels :

Private Sub UserForm_Initialize()

Dim c As Range, ctrl As Control

For Each ctrl In Me.Controls
ctrl.Visible = False
Next ctrl


For Each c In Range("nbmois").Cells
For Each ctrl In Me.Controls
If TypeName(ctrl) = "ComboBox" Then
If ctrl.Name = c.Value Then
ctrl.Visible = True
End If
End If



If TypeName(ctrl) = "Label" Then
If ctrl.Caption = c.Value Then
ctrl.Visible = True
End If
End If

Next ctrl
Next c

End Sub




Merci!!!
 
- 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
8
Affichages
270
Réponses
5
Affichages
312
Réponses
3
Affichages
265
Réponses
7
Affichages
334
Réponses
2
Affichages
427
Retour