Boucle pour faire apparaître des frames

Bonjour,

J'ai 4 frame qui sont déjà créés sur mon userform. Je veux les faire apparaître successivement par l'evenement click de mon button.

C'est à dire:

  • je clique une première fois, Frame1 apparait
  • je clique une deuxième fois, Frame1 reste et Frame2 apparait
  • je clique une troisième fois, Frame 1 et 2 reste et Frame3 apparaît
  • .... ainsi de suite

Voilà le code que j'ai écrit:

Private Sub CommandButton1_Click()
Dim i As Long

Dim j As Long

i = i + 1
 For j = 2 To i
        UserForm7.Controls("Frame" & j).Visible = True

    Next j

End Sub

Mais malheureusement ça ne marche pas, est ce que vous pourriez m'aider à améliorer mon code ?

Merci,

Bonne journée

Bonjour,

Essayer :

Private Sub CommandButton1_Click()
    Static i As Integer
    i = i Mod 4 + 1
    Me.Controls("Frame" & i).Visible = True
End Sub

Mais ça ne fera que les rendre visible...

Cordialement.

bonjour,

Merci pour ta réponse rapide,

les frames apparaissent comme je le veux, c'est super

je n'ai jamais vu "Mod" avant, à quoi sert-il ? et comment ça marche ?

Imaginons que les frames que je veux faire apparaitre commencent à la frame 2, comment paramétrer pour faire apparaitre que les frames 2 à 5 par exemple ?

Bonjour toutes et tous

bon moins bien que M.Ferrand

une astuce bête qui consiste à mettre plusieurs boutons command dans l'USF

pas trop super mais, l'on peut jongler rendre visible est invisible ces frames

à tester et, surtout ne pas prendre mon exemple

ci-joint lol

crdlt,

André

20frames.xlsm (25.09 Ko)

Re,

effectivement Andre13, ta solution marche plutôt bien, un peu conséquente mais efficace

Re,

Static conserve la valeur de la variable entre deux clics sur le bouton.

i prend les valeurs 1 à 4. i Mod 4 renvoie le modulo (le reste de la division de i par 4, soit 1, 2 ou 3 si i=1, 2, ou 3, et 0 si i=4.

On incrémente sur le modulo de la valeur précédente : au départ i=0, son modulo est aussi 0, donc incrémentation à 1, puis on passera par 2, 3, 4 et retour à 1...

Dans ton cas des Frame 2 à 5, tu n'as toujours que 4 Frame, donc tu conserves le cycle de i sur 4 valeurs...

Mais tes Frame sont numérotées 2 à 5 : soit tu les renommes ! soit si tu ne les renommes pas tu fais ..."Frame" & i + 1

Cordialement.

Merci beaucoup pour tes explications,

Bonne journée,

Rechercher des sujets similaires à "boucle apparaitre frames"