Question

Je voudrais générer les légendes des pages d'un formulaire utilisateur multipage en parcourant certaines valeurs de cellule, mais malheureusement, j'obtiens une erreur lorsque le formulaire utilisateur est initialisé.

Private Sub UserForm_Initialize()

Dim pagecount As Integer
Dim n As Integer
Dim name As Integer

pagecount = Sheets("SETUP").Range("B" & rows.Count).End(xlUp).Row - 5
n = 0
name = 6

With MultiPage1
Do
.Pages(n).Caption = Sheets("SETUP").Range("B" & name).Value
n = n + 1
name = name + 1
Loop Until n = pagecount
End With

End Sub
Était-ce utile?

La solution

Suite aux commentaires, celui-ci fonctionne :

Private Sub UserForm_Initialize()
    Dim pagecount As Long
    Dim n As Long

    pagecount = Sheets("SETUP").Range("B" & Rows.Count).End(xlUp).Row - 5
    n = 0

    With MultiPage1
        Do
            If n >= .Pages.Count Then .Pages.Add
            .Pages(n).Caption = Sheets("SETUP").Range("B" & n + 6).Value
            n = n + 1
        Loop Until n = pagecount
    End With
End Sub

Notez également que j'ai changé Dim pagecount As Integer à Dim pagecount As Long (car la valeur maximale de l'entier n'est que 32768).Pour votre exemple, il est peu probable qu'il y ait plus de 32768 pages, mais en général, c'est une bonne pratique d'utiliser Long lors de la détermination de la dernière ligne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top