Numéro suivant automatqiue (Incrémenter) dans une textbox

Bonjour,

J'ai créé un formulaire de saisie afin que celui ci puisse générer à chaque fois un numéro chronologique.

Mon userform:

1 combobox de recherche, puis des textbox 8 au total où sont les informations. Mon userform me sert à consulter ma saisie et aussi à insérer des nouvelles saisies.

J'ai un bouton ajouter et c'est par celui ci que je souhaiterai que dans ma TEXTBOX 7, lorsque je clique sur "ajouter un nouvel enregistrement", et que je réponds OUI, un numéro de chrono vient exemple: 2019-001, à la prochaine saisie où j'active le bouton AJOUTER, je réponds à nouveau OUI, le numéro de chrono dans la Textbox suit : 2019-002

J'ai travaillé avec un code comme celui ci:

Private Sub CommandButton1_Click()

Dim L As Integer

'pour avoir num chronon automatique

Me.TextBox7.Value = Format(Application.WorksheetFunction.Max(Worksheets("OS").Columns(7)) + 1, "2019-000")

If MsgBox("Enregistrer un nouvel O.S avec numéro de chrono SET ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message

L = Sheets("OS").Range("a65536").End(xlUp).Row + 1

Range("A" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne A

Range("A" & L).Value = TextBox1 'Insère la donnée de la textbox1 dans la colonne B

Range("B" & L).Value = TextBox2

Range("C" & L).Value = TextBox3

Range("D" & L).Value = TextBox4

Range("E" & L).Value = TextBox5

Range("F" & L).Value = TextBox6

Range("G" & L).Value = TextBox7

Range("H" & L).Value = TextBox8

Range("I" & L).Value = TextBox9

Range("J" & L).Value = TextBox10

End If

End Sub

Malheureusement j'obtiens bien le numéro 2019-001, mais à chaque fois que je clique sur mon bouton ajouter, j'ai toujours le 2019-001, je n'ai pas de numéro suivant chronologique.

J'ai bien essayé toutes les solutions en surfant sur le net, rien à faire.

A vous qui êtes plus experts en la matière, auriez vous une solution??

D'avance merci,

Bonjour,

Si, tel qu'il est présenté, le code ne propose pas le N° suivant, c'est que l'ancien n'est pas écrit ou est écrit dans la mauvaise feuille.

Apparemment , tout se joue sur la feuille OS, or dans les écritures du contenu de l'userform , la feuille n'est pas précisée.

essayer:

With WorkSheets("OS")
.../...
.Range("A" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne A
.Range("A" & L).Value = TextBox1 'Insère la donnée de la textbox1 dans la colonne B
.Range("B" & L).Value = TextBox2
.../...
End With

A+

EDIT: Après la première écriture, en colonne G on trouve: 2019-001, donc du texte .Le Max de la colonne G est donc 0. 0+1=1 avec le format spécifié on aura 2019-001.

La modification proposée ci dessus est inutile dans ce cas précis mais c'est une bonne habitude à prendre.

Une solution possible :

mettre le format personnalisé 2019-000 colonne G

enregistrer dans la feuille avec:

Range("G" & L).Value =  Right(TextBox7, 3)

Bonjour,

fait un essai en 2 lignes,

et en mode pas à pas, vérifie la valeur de la variable n

n = Application.WorksheetFunction.Max(Worksheets("OS").Columns(7)) + 1
Me.TextBox7.Value = Format(n, "2019-000")

ps/

pour insérer du code utile la balise

balise de code

tu peux aussi sélectionner un code et clic sur la balise

https://forum.excel-pratique.com/viewtopic.php?f=6&t=24726

Merci pour votre réactivité, Malheureusement le code d'Agglo Plus, même en mettant with, ça ne fonctionne pas, j'ai toujours 2019-001 à chaque enregistrement.

Pour la proposition de i20100, je place où ce morceau de code??

D'avance merci,

re,

Pour la proposition de i20100, je place où ce morceau de code??

c'est pour remplacer la ligne

Me.TextBox7.Value = Format(Application.WorksheetFunction.Max(Worksheets("OS").Columns(7)) + 1, "2019-000")

Voir la solution proposée dans l'Edit de mon message

Merci encore pour vos conseils, alors voici le code adapter selon vos propositions:

Private Sub CommandButton1_Click()

Dim L As Integer

With Worksheets("OS")

Me.TextBox6.Value = Format(Application.WorksheetFunction.Max(Worksheets("OS").Columns(6)) + 1, "2019-000")

End With

If MsgBox("Enregistrer un nouvel O.S avec numéro de chrono SET ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message

L = Sheets("OS").Range("a65536").End(xlUp).Row + 1

Range("A" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne A

Range("A" & L).Value = TextBox1 'Insère la donnée de la textbox1 dans la colonne B

Range("B" & L).Value = TextBox2

Range("C" & L).Value = TextBox3

Range("D" & L).Value = TextBox4

Range("E" & L).Value = TextBox5

Range("F" & L).Value = Right(TextBox6, 3)

Range("G" & L).Value = TextBox7

Range("H" & L).Value = TextBox8

Range("I" & L).Value = TextBox9

End If

End Sub

J'ai enfin une incrémentation, dans mon userform j'ai bien 2019-001, puis ensuite 2016-002 etc... mais dans ma base de données de mon classeur Excel il me rentre dans ma colonne F (anciennement G, car j'ai supprimer une textbox qui m'étais inutile), si bien que ma chronologie se trouve en F soit 6ème colonne dans le tableau Excel, il m'indique 1,2,3.

Quand j'ai voulu, faire : 0.0+1=1, dans le code, ça m'indique erreur et me surligne en jaune.

Ce qui serait super c'est que cela m'incrémente la même chose dans l'userform mais aussi dans ma base de données OS.

Pour répondre à la question, les données sont bien toutes dans une même feuille OS.

D'avance merci.

Oups.. référene 2019-001, 2019-002 etc...

J'ai repéré fautes de frappe dans précédent message...

pour l'affichage du style 2019-011, adapter le format des cellules de la colonne F comme préconisé dans mon Edit

Quand j'ai voulu, faire : 0.0+1=1, dans le code, ça m'indique erreur et me surligne en jaune.

quelle ligne ?

Private Sub CommandButton1_Click()

Dim L As Integer

With Worksheets("OS")

Me.TextBox6.Value = Format(Application.WorksheetFunction.Max(Worksheets("OS").Columns(6)) 0.0+ 1 =1, "2019-000")

End With

If MsgBox("Enregistrer un nouvel O.S avec numéro de chrono SET ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message

L = Sheets("OS").Range("a65536").End(xlUp).Row + 1

Range("A" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne A

Range("A" & L).Value = TextBox1 'Insère la donnée de la textbox1 dans la colonne B

Range("B" & L).Value = TextBox2

Range("C" & L).Value = TextBox3

Range("D" & L).Value = TextBox4

Range("E" & L).Value = TextBox5

Range("F" & L).Value = Right(TextBox6, 3)

Range("G" & L).Value = TextBox7

Range("H" & L).Value = TextBox8

Range("I" & L).Value = TextBox9

End If

?

J'ai bien tenté d'adapter le code en fonction de vos indications, je ne suis pas très expérimentée en matière de programmation, j'ai débuté il n'y a pas longtemps, alors je pense que je n'ai pas compris ce que vous m'indiquiez.

J'ai donc placer With et le bout du code indiqué comme ceci:

Private Sub CommandButton1_Click()

Dim L As Integer

With Worksheets("OS")

Me.TextBox6.Value = Format(Application.WorksheetFunction.Max(Worksheets("OS").Columns(6)) + 1, "2019-000")

Puis la suite dans le même bouton:

End With

If MsgBox("Enregistrer un nouvel O.S avec numéro de chrono SET ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message

L = Sheets("OS").Range("a65536").End(xlUp).Row + 1

Range("A" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne A

Range("A" & L).Value = TextBox1 'Insère la donnée de la textbox1 dans la colonne B

Range("B" & L).Value = TextBox2

Range("C" & L).Value = TextBox3

Range("D" & L).Value = TextBox4

Range("E" & L).Value = TextBox5

Range("F" & L).Value = Right(TextBox6, 3)

Range("G" & L).Value = TextBox7

Range("H" & L).Value = TextBox8

Range("I" & L).Value = TextBox9

End If

End Sub

Quand je lance mon userform, et que je clique sur le bouton "Ajouter", j'ai bien ma textbox6 qui affiche 2019-001, si je continue avec une seconde saisie dans ma textbox6 ça se suit comme je le souhaite 2019-002, mais par contre dans ma feuille OS excel (mon tableau de base de données), je n'ai pas dans la colonne F, 2019-001 et 2019-002, je me retrouve avec 1,2 et arrivé à 3 les chiffres ne se suivent plus. Ca me reste figé dans l'userform à 2019-003, et dans ma base de données plus de lignes qui s'insèrent.

J'espère avoir été à peu prés compréhensible.

Sinon mille excuses.

Rentrant en réunion, je suis vos réponses et revient sur le thème rapidement.

Merci de votre compréhension.

Et merci encore.

il n'est plus question de modifier le code, mais l'affichage en colonne F !

si dans cette colonne vous avez 1, 2 ou 3 ou ...., mettez le format de ces cellules (ainsi que toute la colonne) au format personnalisé : 2019-000 , les données s'afficheront 2019-001, 2019-002, ou 2019-003 ou 2019-0xx ...

Bonjour,

Je suis bien revenue sur mon userform et j'ai bien suivi votre édit et vos conseils, ça marche très bien, un grand grand merci!!!

Merci pour ce retour, au plaisir!

pour clôture le fil, fait un clic sur le bouton (indiquer par la flèche verte)

resolu

Merci!

Rechercher des sujets similaires à "numero suivant automatqiue incrementer textbox"