Boucle pour faire apparaître des frames Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
t
tvbfl
Jeune membre
Jeune membre
Messages : 33
Inscrit le : 25 octobre 2017
Version d'Excel : 2010

Message par tvbfl » 22 novembre 2017, 10:26

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
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 22 novembre 2017, 11:04

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.
t
tvbfl
Jeune membre
Jeune membre
Messages : 33
Inscrit le : 25 octobre 2017
Version d'Excel : 2010

Message par tvbfl » 22 novembre 2017, 11:13

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 ?
A
Andre13
Membre impliqué
Membre impliqué
Messages : 1'679
Appréciations reçues : 109
Inscrit le : 13 juillet 2017
Version d'Excel : 2007-2013

Message par Andre13 » 22 novembre 2017, 11:29

Bonjour toutes et tous
bon moins bien que M.Ferrand :wink:

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 :lol:
crdlt,
André
frames.xlsm
(25.09 Kio) Téléchargé 7 fois
t
tvbfl
Jeune membre
Jeune membre
Messages : 33
Inscrit le : 25 octobre 2017
Version d'Excel : 2010

Message par tvbfl » 22 novembre 2017, 11:45

Re,

effectivement Andre13, ta solution marche plutôt bien, un peu conséquente mais efficace :D
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 22 novembre 2017, 11:50

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.
t
tvbfl
Jeune membre
Jeune membre
Messages : 33
Inscrit le : 25 octobre 2017
Version d'Excel : 2010

Message par tvbfl » 22 novembre 2017, 13:11

Merci beaucoup pour tes explications,


Bonne journée,
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message