Afficher un certain nombre de frame

Résolu
Bonjour,

J'aimerai afficher un certain nombre de frame en fonction d'une cellule récupérée.

Par exemple je récupère 3, je voudrais afficher seulement frame1 et frame2

Merci beaucoup de vos réponse.

1 réponse

  1. Bonjour,

    Une façon de faire. A adapter a votre contexte

    Private Sub CommandButton1_Click()
    
        If Cells(1, 1) <> "" And IsNumeric(Cells(1, 1)) Then
            NbF = 0
            'compte le nombre de frame
            For Each ctrl In UserForm1.Controls
                'Si le type du Controle est une Frame +1
                If TypeOf ctrl Is MSForms.Frame Then
                    NbF = NbF + 1
                    ctrl.Visible = False
                End If
     
            Next
    
            NbF = Cells(1, 1) - 1   'nombre de frame a afficher
            For nf = 1 To NbF
                Me.Controls("Frame" & nf).Visible = True
            Next nf
        End If
    End Sub

    Si vous en voulez 1 et 2 pourquoi 3 dans cellule?????????????????

    une autre façon plus logique:
    Private Sub CommandButton2_Click()
        If Cells(1, 1) <> "" And IsNumeric(Cells(1, 1)) Then
            NbF = 0
            'compte le nombre de frame
            For Each ctrl In UserForm1.Controls
                'Si le type du Controle est une Frame +1
                If TypeOf ctrl Is MSForms.Frame Then
                    NbF = NbF + 1
                    If NbF <= Cells(1, 1) - 1 Then
                        ctrl.Visible = True
                    Else
                        ctrl.Visible = False
                    End If
                End If
            Next
        End If
    End Sub
    1. Je vais cherche le nombre de personne dans un foyer si on me retourne 3 cela veut dire que je dois ajouter 2 membres (nom prénom etc) et donc je veux afficher la frame 1 et la frame 2 uniquement. Je test votre code il ne me retourne aucune frame sachant que j'ai fais les modifs.
    2. Merci beaucoup finalement j'ai testé le premier code et il fonctionne merci beaucoup !