Simplification d'un code

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

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,

Je débute en Vba et j'ai encore quelques difficultés à simplifier mes codes, en voici un exemple.
Ce code me permet de rendre visible ou pas les pages d'un UserForm Multipages :
Comment le rendre plus simple car là il est un peu long n'est-ce pas?
Je vous remercie par avance pour l'aide que vous pourrez m'apporter.
VB:
Private Sub MultiPage1_Change()
   With Me
        Select Case .MultiPage1.Value
            Case 0 'Correspond à la page 1
                MultiPage1.Pages(1).Visible = False
                MultiPage1.Pages(2).Visible = False
                MultiPage1.Pages(3).Visible = False
                MultiPage1.Pages(4).Visible = False
                MultiPage1.Pages(5).Visible = False
 

            Case 1 'Correspond à la page 2
                MultiPage1.Pages(0).Visible = False
                MultiPage1.Pages(2).Visible = False
                MultiPage1.Pages(3).Visible = False
                MultiPage1.Pages(4).Visible = False
                MultiPage1.Pages(5).Visible = False
                

            Case 2 'Correspond à la page 3
                MultiPage1.Pages(0).Visible = False
                MultiPage1.Pages(1).Visible = False
                MultiPage1.Pages(3).Visible = False
                MultiPage1.Pages(4).Visible = False
                MultiPage1.Pages(5).Visible = False
              

            Case 3 'Correspond à la page 4
                MultiPage1.Pages(0).Visible = False
                MultiPage1.Pages(1).Visible = False
                MultiPage1.Pages(2).Visible = False
                MultiPage1.Pages(4).Visible = False
                MultiPage1.Pages(5).Visible = False
              

            Case 4 'Correspond à la page 5
                MultiPage1.Pages(0).Visible = False
                MultiPage1.Pages(1).Visible = False
                MultiPage1.Pages(2).Visible = False
                MultiPage1.Pages(3).Visible = False
                MultiPage1.Pages(5).Visible = False
              

            Case 5 'Correspond à la page 6
                MultiPage1.Pages(0).Visible = False
                MultiPage1.Pages(1).Visible = False
                MultiPage1.Pages(2).Visible = False
                MultiPage1.Pages(3).Visible = False
                MultiPage1.Pages(4).Visible = False
                

        End Select
        .Repaint
    End With
End Sub
 
Bonjour NONO14

A tester:
Code:
Sub test()
Pages = Array(0, 1, 2, 3, 4, 5)
With Me
For n = LBound(Pages) To UBound(Pages)
  If Pages(n) <> .MultiPage1.Value Then
      .MultiPage1.Pages(Pages(n)).Visible = False
  End If
Next
.Repaint
End With
End Sub
 
Bonjour Nono, bonjour le forum,

Essaie comme ça :

VB:
Dim I As Byte
For I = 0 To 5
    MultiPage1.Pages(I).Visible = IIf(MultiPage1.Value = I, True, False)
Next I
[Édition]
Bonjour PierreJean, nos posts se sont croisés...
 
Bonjour à tous

j'y vais aussi de ma version:

VB:
Private Sub MultiPage1_Change()
 Dim i As Byte
 For i = 0 To MultiPage1.Pages.Count - 1
    If i <> MultiPage1.Value Then MultiPage1.Pages(i).Visible = False
 Next
End Sub

Bonne journée
 
- 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
7
Affichages
173
Réponses
5
Affichages
468
  • Question Question
Microsoft 365 CSV en EXCEL
Réponses
1
Affichages
99
Réponses
8
Affichages
726
Retour