J'ai un formulaire USF qui alimente un tableau.
Quand j'enregistre les lignes s'ajoutent a la suite dans le tableau.
Au final j'enregistre le tableau par un bouton,et vide le tableau en même temps .
Je souhaiterai numéroter les lignes au fur et mesure des enregistrements.
Comment code cette incrémentation et la maintenir existante malgré l'effacement du tableau.?
(Je précise que je me suis fait aider pour certaines partie du fichier)
si quelqu'un a une idée je suis preneur
D'avance merci
Bonjour, J'ai un formulaire USF qui alimente un tableau. Quand j'enregistre les lignes s'ajoutent a la suite dans le tableau. Au final j'enregistre le tableau par un bouton,et vide le tableau en même temps . Je souhaiterai numéroter les lignes au fur et mesure des enregistrements. Comment code...
En fait, dans le USF ,preniere txtbox je lui met le numéro 1qui est bien enregistrer dans le tableau
Comme je vais avoir plusieurs fois cette même ligne je voudrais a enregistrer, je voudrais que les numéro de lignes s'incrèrmement +1 .
Avec: lignes (a1) ,je ne parviens pas, surtout que je vide le tableau a la création du pdf
Il y a une solution assez simple. Dans le fichier-démo-simplette joint :
* un bouton pour ouvrir un userfom avec un textbox
* dans cet usf, un bouton d'enregistrement qui place le contenu du textbox dans la 1ère ligne vide de la feuille en colonne B
VB:
Private Sub CommandButton1_Click()
Dim lg As Integer
lg = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
ActiveSheet.Cells(lg, "B").Value = Me.TextBox1.Value
Unload Me
End Sub
* dans le code de la feuille on récupère l'événement Change et si A est vide et B non vide, on attribue en A le max de la colonne A plus 1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing And Target.Rows.Count = 1 Then
If Me.Range("A" & Target.Row).Value = "" And Not Me.Range("B" & Target.Row).Value = "" Then
Me.Range("A" & Target.Row).Value = Application.Max(Me.Range("A:A")) + 1
End If
End If
End Sub
C'est cette méthode éprouvée que j'utilise le plus souvent
P.
Il y a une solution assez simple. Dans le fichier-démo-simplette joint :
* un bouton pour ouvrir un userfom avec un textbox
* dans cet usf, un bouton d'enregistrement qui place le contenu du textbox dans la 1ère ligne vide de la feuille en colonne B
VB:
Private Sub CommandButton1_Click()
Dim lg As Integer
lg = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
ActiveSheet.Cells(lg, "B").Value = Me.TextBox1.Value
Unload Me
End Sub
* dans le code de la feuille on récupère l'événement Change et si A est vide et B non vide, on attribue en A le max de la colonne A plus 1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing And Target.Rows.Count = 1 Then
If Me.Range("A" & Target.Row).Value = "" And Not Me.Range("B" & Target.Row).Value = "" Then
Me.Range("A" & Target.Row).Value = Application.Max(Me.Range("A:A")) + 1
End If
End If
End Sub
C'est cette méthode éprouvée que j'utilise le plus souvent
P.
Il y a une solution assez simple. Dans le fichier-démo-simplette joint :
* un bouton pour ouvrir un userfom avec un textbox
* dans cet usf, un bouton d'enregistrement qui place le contenu du textbox dans la 1ère ligne vide de la feuille en colonne B
VB:
Private Sub CommandButton1_Click()
Dim lg As Integer
lg = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1
ActiveSheet.Cells(lg, "B").Value = Me.TextBox1.Value
Unload Me
End Sub
* dans le code de la feuille on récupère l'événement Change et si A est vide et B non vide, on attribue en A le max de la colonne A plus 1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing And Target.Rows.Count = 1 Then
If Me.Range("A" & Target.Row).Value = "" And Not Me.Range("B" & Target.Row).Value = "" Then
Me.Range("A" & Target.Row).Value = Application.Max(Me.Range("A:A")) + 1
End If
End If
End Sub
C'est cette méthode éprouvée que j'utilise le plus souvent
P.
bien que simple ,je ne parviens pas a adapter ce code
je joins le fichier si vous pouvez y jeter un ti coup d'oeil.
Quelques explications seraient bien venues,mais j'ai franchement du mal a suivre toute cette syntaxe
Je souhaiterai numéroter les lignes au fur et mesure des enregistrements.
Comment code cette incrémentation et la maintenir existante malgré l'effacement du tableau.?
Bonsoir, le numéro de ligne signifie quoi dans votre exemple ?
Est-ce une nouvelle colonne à mettre à jour dans le tableau Tab_Packing ?
On peut également y mettre une clé unique qui identifiera à tout jamais celle-ci ...
Bonsoir, le numéro de ligne signifie quoi dans votre exemple ?
Est-ce une nouvelle colonne à mettre à jour dans le tableau Tab_Packing ? Regarde la pièce jointe 1161244
On peut également y mettre une clé unique qui identifiera à tout jamais celle-ci ...
Bonsoir,
Suis désolé mais une clé unique ,je vois pas ce que vous entendez .
Cette colonne correspond au txtbox Numéro de palette.donc le numéro qui sera inscrit sur la palette.Maintenant ,ajouter une colonne est bien aussi,dans ce cas je change l'entête N°pal par Nbre Pal et la colonne que vous ajoutez devient N°Pal.
Par contre lorsque je ferme,le tableau se vide comme prévu initialement,mais je voudrais que l'incrementation refonctionne bien sûr.
Bonsoir franch55
Désolé pour cette réponse tardive.
Tout fonctionne parfaitement,c'est exactement ce que je voulais.
Il m'aurait été impossible de coder comme vous l'avez fait.
Un grand merci pour ce travail et le temps passé.