Bonsoir le fil, bonsoir le forum,
En pièce jointe ton fichier modifié avec le code ci-dessous. Attention j'ai renommé toutes les TextBoxes pour faciliter le code !
Private O As Worksheet 'déclare la variable O (Onglet)
Private DL As Integer 'déclare la variable DL (Dernière Ligne)
Private LI As Integer 'déclare la variable LI (LIgne)
Private C As Byte 'déclare la variable C (Contrôle)
Private I As Byte 'déclare la variable I (Incrément)
Private J As Byte 'déclare la variable J (Incrément)
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Set O = Sheets("DATABASE") 'déinit l'onglet O
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
Me.SpinButton1.Max = DL \ 10 'définit la valeur maximum du SpinButton1
LI = 2 'initialise la ligne LI
Me.TextBox101 = LI - 1 'renvoie la Ligne LI dans la TextBox101
C = 1 'initialise la variable C
For I = 1 To 120 Step 12 'boucle 1 : sur les 120 contrôles de l'UserForm par pas de 12
For J = 1 To 12 'boucle 2 : sur les 12 contrôles de la ligne
'renvoie dans le contrôle la valeur ligne LI, colonne J de l'onglet O
Me.Controls("L" & CStr(C) & "_" & CStr(J)).Value = O.Cells(LI, J).Value
Next J 'prochaine contrôle de la boucle 2
LI = LI + 1: C = C + 1 'incrémente LI, incrémente C
Next I 'prochain contrôle de la boucle 1
End Sub
Private Sub SpinButton1_SpinDown() 'au clic sur la flèche vers la gauche (diminution)
LI = LI - 20 'définit la ligne LI
If LI < 2 Then LI = 2 'redéfinit la ligne LI si elle est inférieure à 2
Me.TextBox101 = LI - 1 'renvoie la Ligne LI dans la TextBox101
C = 1 'initialise la variable C
For I = 1 To 120 Step 12 'boucle 1 : sur les 120 contrôles de l'UserForm par pas de 12
For J = 1 To 12 'boucle 2 : sur les 12 contrôles de la ligne
'renvoie dans le contrôle la valeur ligne LI, colonne J de l'onglet O
Me.Controls("L" & CStr(C) & "_" & CStr(J)).Value = O.Cells(LI, J).Value
Next J 'prochaine contrôle de la boucle 2
LI = LI + 1: C = C + 1 'incrémente LI, incrémente C
Next I 'prochain contrôle de la boucle 1
End Sub
Private Sub SpinButton1_SpinUp() 'au clic sur la flèche vers la droite (augmentation)
If LI > DL Then Exit Sub 'si la variable LI est supérieure à DL, sort de la procédure
Me.TextBox101 = LI - 1 'renvoie la Ligne LI dans la TextBox101
C = 1 'initialise la variable C
For I = 1 To 120 Step 12 'boucle 1 : sur les 120 contrôles de l'UserForm par pas de 12
For J = 1 To 12 'boucle 2 : sur les 12 contrôles de la ligne
'renvoie dans le contrôle la valeur ligne LI, colonne J de l'onglet O
Me.Controls("L" & CStr(C) & "_" & CStr(J)).Value = O.Cells(LI, J).Value
Next J 'prochaine contrôle de la boucle 2
LI = LI + 1: C = C + 1 'incrémente LI, incrémente C
Next I 'prochain contrôle de la boucle 1
End Sub