Simplification d'un code

NONO14

XLDnaute Nouveau
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
 

pierrejean

XLDnaute Barbatruc
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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...
 

Paf

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
8
Affichages
354

Statistiques des forums

Discussions
311 711
Messages
2 081 792
Membres
101 817
dernier inscrit
carvajal