Ajouter une légende de plusieurs pages en faisant une boucle à partir des valeurs de cellule
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
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