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

Rechercher des sujets similaires à "compteur userform fonction dernieres donnees"