Microsoft 365 Formulaire et numérotation des lignes tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Marec

XLDnaute Occasionnel
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 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
 
Solution
Le classeur ci-joint conserve tout ce que vous avez fait.
Il y a juste dans la colonne "PAL N°" de la table structurée la formule
VB:
=LIGNE()-LIGNE(Tab_Packing[[#En-têtes];[PAL N°]])
Le code de l'userform a été modifié pour neutraliser la boite4
Bonjour vgendon,

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
 
Bonjour à tous,

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.
Bonjour à tous,

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.
 
Bonjour à tous,

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
 

Pièces jointes

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 ?
1674501503640.png

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.
 
Dernière édition:
Le classeur ci-joint conserve tout ce que vous avez fait.
Il y a juste dans la colonne "PAL N°" de la table structurée la formule
VB:
=LIGNE()-LIGNE(Tab_Packing[[#En-têtes];[PAL N°]])
Le code de l'userform a été modifié pour neutraliser la boite4
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
939
Retour