Compteur de Userform en fonction des dernières données
Bonjour à tous,
J'ai créé un Userform qui fonctionne parfaitement à un point près.
Mon Userform permet aux commerciaux de configurer des packs de produit. Les données se retrouvent dans une base de données (forme, couleur etc.). Chaque Pack a un numéro attribué (de 1 à 16) qui est généré automatiquement dans une Textbox non modifiable.
Mon problème est le suivant :
- Lorsque l'on ouvre le formulaire pour la première fois le numéro indiqué dans la textboxest le 1 : OK
- Lorsque l'on valide le premier pack, le formulaire se réinitialise et le numéro de pack indiqué est le 2 et on peut compléter le pack : OK
- Mais si je quitte le formulaire et l'ouvre de nouveau, le numéro de pack indiqué dans la textbox est le 1 alors que j'aimerai indiquer 3, pour faire suite aux deux premiers packs créés.
Je ne trouve pas comment indiquer à mon formulaire de commencer par 1 si aucun pack n'a été configuré ou par n+1 suivant le nombre de packs configurés en amont.
En PJ le fichier, dans le premier onglet le bouton de démarrage du formulaire et l'onglet 2 la base de données.
Merci beaucoup pour votre aide !!
Bonjour,
j'ai ajouté une procédure à l'initialisation du formulaire qui va chercher le numéro du dernier pack dans l'onglet "liste packs" :
Merci beaucoup melch, c'est exactement ça !!
Bonjour,
ta codif vba n'est pas très clair.
Tu ne fais pas la recherche de numérotation au bon endroit.
Tu as indiquer dans commande bouton 1 ( Valider )
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Liste packs")
Dim n As Long
If Application.WorksheetFunction.CountIf(sh.Range("A:A"), Me.TextBox1.Value) > 0 Then
MsgBox "Ce num?ro de pack a d?j? ?t? renseign?", vbCritical
Exit Sub
End If
n = sh.Range("A" & Application.Rows.Count).End(xlUp).Row
sh.Range("A" & n + 1).Value = Me.TextBox1.Value
sh.Range("B" & n + 1).Value = Me.ComboBox1.Value
sh.Range("C" & n + 1).Value = Me.ComboBox2.Value
sh.Range("D" & n + 1).Value = Me.ComboBox3.Value
sh.Range("E" & n + 1).Value = Me.ComboBox4.Value
sh.Range("F" & n + 1).Value = Me.ComboBox5.Value
sh.Range("G" & n + 1).Value = Me.ComboBox6.Value
Me.TextBox1.Value = Me.TextBox1.Value + 1
Me.ComboBox1.Value = ""
Me.ComboBox2.Value = ""
Me.ComboBox3.Value = ""
Me.ComboBox4.Value = ""
Me.ComboBox5.Value = ""
Me.ComboBox6.Value = ""
MsgBox "Vous pouvez passer au Pack suivant", vbInformation
If Me.TextBox1.Value > 16 Then
MsgBox "Vous avez atteint le nombre maximum de Pack PGx Single par parking (16)", vbCritical
Unload Me
End If
Beaucoup de lignes pour pas grand chose.
Tu devrais rechercher la dernière ligne utilisée à l'ouverture du userform pour afficher la valeur de la textbox1 et
pas au moment de la validation.
Merci pour ton retour.
Je dois t'avouer que je n'y connais pas grande chose sinon rien en VBA, j'apprends sur le tas au fur et à mesure des tutos etc. Donc j'imagine qu'il y a plus simple et plus clair, mais pour l'instant mon Userform fonctionne parfaitement, donc je préfère pas trop y toucher haha