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
| ' Fonction de capture des infos du userform et passage des arguments par référence
' @param Source Plage du modèle d'étiquette
' @param Target Cellule supérieure gauche de la première étiquette copiée
' @param LabelCount Nombre d'étiquettes à copier au total
' @param SideBySideCount nombre d'étiquettes côte à côte sur une ligne
' @param Separator Nombre de lignes Excel à insérer entre chaque ligne d'étiquettes
'
' @Return True si la copie doit avoir lieu, sinon False
Function CatchDatasFromUserForm(Source As Range, Target As Range, LabelCount As Long, SideBySideCount As Long, Separator As Long) As Boolean
Load uLabel1 ' Chargement du userform nommé uLabel1
With uLabel1
.TextBox1 = 10 ' Par défaut, le formulaire proposera 10 copies
.CheckBox1 = True ' par défaut, le +1 sera coché
End With
uLabel1.Show ' Affichage
' Traitement en fonction du bouton cliqué (valeur de la variable, ou plutôt de la propriété Choice du formulaire)
If uLabel1.Choice = "Validate" Then
' Transfert des données d'étiquette(j'ai gardé ici le nom de tes combobox, mais il faudra les renommer!!)
With Range("LabelModel")
.Cells(1, 1).Value = uLabel1.ComboBox1.Text
.Cells(1, 2).Value = uLabel1.ComboBox2.Text
.Cells(2, 1).Value = uLabel1.ComboBox3.Text
.Cells(2, 2).Value = uLabel1.TextBox3.Value
.Cells(3, 1).Value = uLabel1.TextBox2.Value
.Cells(3, 2).Value = uLabel1.ComboBox4.Text
.Cells(4, 1).Value = uLabel1.TextBox4.Value
End With
' Transfert du nombre d'étiquettes à réaliser
LabelCount = uLabel1.LabelCount
' Préparation des données non issues du userform
Set Source = Range("LabelModel")
Set Target = Range("TargetLabel")
SideBySideCount = 3 ' donnée en dur pour reprendre ton exemple
Separator = 2 ' donnée en dur pour reprendre ton exemple
CatchDatasFromUserForm = True ' Validation, le traitement devra être exécuté
Else
CatchDatasFromUserForm = False ' Annulation, pas de traitement
End If
Unload uLabel1 ' On décharge le formulaire
End Function |
Partager