2 pièce(s) jointe(s)
Copier x fois à partir d'une valeur Textbox
Bonjour,
J'ai un nouveau problème, J'ai un Userform qui contient des combobox et des textbox :
Pièce jointe 209329
J'aimerais que quand on rentre un nombre dans textbox1 et qu'on valide celui-ci me copie x fois les cellules de la Feuil2 qui sont remplies par les autres textbox et combobox.L'extraction à partir de mes textbox et combobox dans les cellules fonctionne, mais c'est une autre histoire pour copier autant de fois que renseigné.
Serait il possible d'obtenir cette mise en page ?
Pièce jointe 209330
J'ai essayé avec des codes de ce genre mais ça fonctionne pas, une idée.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
CommandButton1_Click()
Worksheets("Feuil2").Range("a100000").End(xlUp).Row 1
cpt = CInt(TextBox1)
For I = 1 To cpt
Cells(Derligne, 1).Value = TextBox1
Cells(Derligne, 3).Value = TextBox1 & Format(iVAl, "00")
Derligne = Derligne + 1
iVAl = iVAl + 1
Next
MsgBox " Traitement fini"
End Sub |
Merci d'avance !!
En utilisant le gestionnaire des noms
Bonjour le fil,
Salut Jacques,
Une solution peut résider en la "préparation du terrain".
Pour cela, pourquoi pas attribuer un nom à chaque zone "étiquette"?
Voici un exemple relativement simple à réaliser :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Option Explicit
Sub Créer_Noms()
Dim Lig As Integer, Col As Integer, Cpt As Integer, Ref As String
Sheets("Feuil2").Select 'Eh oui, désolé, cela semble primordial dans ce cas...
Range("A1").Select 'Idem...
For Lig = 7 To 32 Step 5
For Col = 1 To 5 Step 2
With ActiveWorkbook.Names
Cpt = Cpt + 1
Ref = "=Feuil2!" & Chr(64 + Col) & Lig & ":" & Chr(65 + Col) & Lig + 3
.Add Name:="Zone_" & Cpt, RefersTo:=Ref
End With
Next
Next
End Sub
Sub ChercheZone()
Dim B As Boolean, L As Integer, C As Integer
B = Premiere_Zone_Vide(L, C)
If B = False Then
'ici la feuille d'étiquettes est remplie
Else
MsgBox "Première cellule de la première zone vide : " & Cells(L, C).Address
End If
End Sub
Function Premiere_Zone_Vide(Lign As Integer, Colo As Integer) As Boolean
Dim Cpt As Integer, Nom As String, Adresse As String
Premiere_Zone_Vide = False
On Error GoTo Fin
Do
Cpt = Cpt + 1
Nom = "Zone_" & Cpt
Adresse = Replace(Split(ActiveWorkbook.Names(Nom).RefersTo, ":")(0), "=Feuil2!", "")
If Worksheets("Feuil2").Range(Adresse).Value = "" Then
Premiere_Zone_Vide = True
Lign = Range(Adresse).Row
Colo = Range(Adresse).Column
Exit Function
End If
Loop While Err = 0
Fin:
End Function |