Copier X fois données d'un userform

Résolu/Fermé
Mimi - Modifié le 31 août 2017 à 14:24
 Mimi - 31 août 2017 à 15:30
Bonjour,

Je voudrais rajouter à mon code ci-dessous qu’il crée autant de ligne que le nombre dans la textbox1.
J’ai trouvé un code mais je n’arrive pas à les « imbriquer »…

MON CODE :
'Bouton OK = on lance les commandes
Private Sub ok_Click()

Dim X As Boolean
Dim i As Byte
Dim dernlign As Long
Dim result As String

' vérification si textbox vides
For i = 1 To 2
    If Me.Controls("TextBox" & i) = "" Then
        X = True
    End If
Next i
For i = 1 To 5
    If Me.Controls("Combobox" & i) = "" Then
        X = True
    End If
Next i

'message si une ou plusieurs sont vides
If X = True Then
    msgbox "Veuillez remplir tous les champs"
    
'On colle les données des box dans les colonnes en dernière ligne
Else: Sheets("2018").Select
    dernlign = (Range("C" & Rows.Count).End(xlUp).Row) + 1
    Range("c" & dernlign).Value = ComboBox1.Value
    Range("d" & dernlign).Value = ComboBox2.Value
    Range("e" & dernlign).Value = ComboBox6.Value
    Range("f" & dernlign).Value = TextBox4.Value
    Range("g" & dernlign).Value = TextBox1.Value
    Range("h" & dernlign).Value = ComboBox3.Value
    Range("i" & dernlign).Value = Format(TextBox2.Value, "yyyy/mm/dd")
    Range("j" & dernlign).Value = ComboBox4.Value
    Range("k" & dernlign).Value = ComboBox5.Value
    Range("l" & dernlign).Value = ComboBox7.Value
    Range("m" & dernlign).Value = TextBox3.Value
    Range("C" & dernlign).Select
    Unload UserForm1
    result = msgbox("Besoin intégré avec succès" & Chr(10) & Chr(10) & "Voulez-vous déclarer un autre besoin?", vbYesNo)
    If result = vbYes Then
       UserForm1.Show
       End If
    If result = vbNo Then
    Sheets("Accueil").Select
    End If
    
End If
    
End Sub


CODE A RAJOUTER :
Private Sub CommandButton1_Click()
Derligne = Range("a100000").End(xlUp).Row + 1
cpt = CInt(TextBox1)


For i = 1 To cpt
   Cells(Derligne, 1).Value = TextBox1
   Cells(Derligne, 2).Value = TextBox2
   Cells(Derligne, 3).Value = TextBox3
   Derligne = Derligne + 1

Next
MsgBox " Traitement fini"
End Sub


Merci mille fois de votre aide,
A voir également:

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
31 août 2017 à 14:49
Bonjour,

si j'ai bien compris,copiez ces lignes

Derligne = Range("a100000").End(xlUp).Row + 1
cpt = CInt(TextBox1)


For i = 1 To cpt
   Cells(Derligne, 1).Value = TextBox1
   Cells(Derligne, 2).Value = TextBox2
   Cells(Derligne, 3).Value = TextBox3
   Derligne = Derligne + 1

Next
MsgBox " Traitement fini"


avant

Unload UserForm1
0
SUPER !!!
Merci beaucoup, quel temps gagné
0