XL 2016 incrementation de numero

natadom

XLDnaute Junior
bonjour,
je souhaiterai incrementer de maniere automatique avec une macro un numéro chaque nouvelle ligne. le numero est dans la colonne j.
en j2 jai le dernier numéro qui a ete utilisé.
je cherche une macro qui :
incremente un nouveau numero a la futur ligne en fonction de j1.
j1 doit pouvoir recuperer le numéro qui est en j2 et le bloquer
car si j'efface toute mes lignes une fois le travail fait, je dois pouvoir repartir du dernier numéro incrementer.
bouton ou macro je ne sais pas et je ny arrive pas.
qq un c'est faire ???
bien cordialement
 

Pièces jointes

  • BASE TEST.xlsm
    84 KB · Affichages: 23

Jacky67

XLDnaute Barbatruc
Bonjour,
Une piste avec un nom ==> "Numero" (dans l'exemple)
VB:
Sub Ajout_ligne()
    Dim rowHeight As Variant, N&
    'bouton pour ajouter une ligne
    'trouver le n° de la dernière ligne (i)
    i = Range("j" & Rows.Count).End(xlUp)(2).Row
    ' copier coller la ligne 3 dans la dernière ligne
    Rows("3:3").Copy Rows(i)
    Rows(i).rowHeight = Rows(3).rowHeight
    N = 1
    On Error Resume Next: N = [numero] + 1: On Error GoTo 0
    ActiveWorkbook.Names.Add Name:="Numero", RefersToR1C1:=N
    Cells(i, "J") = N
End Sub
 

Pièces jointes

  • BASE TEST.xlsm
    78.4 KB · Affichages: 28

natadom

XLDnaute Junior
bonjour jacky
cest top
merci
je peux ainsi suprimer une ligne sans rien changer aux autres
je peux supprimer les lignes et en installer de nouvelles avec les numeros qui repartent dou ils se sont arretes.
et je peux copier coller le fichier dans la feuille a cote plus simplement sans changer les numéros de vac.
vraiment merci.
puis je vous solliciter encore un peut ?
 

Jacky67

XLDnaute Barbatruc
Re..
Dans l'exemple donnée la colonne 1 est occupée par une date
Néanmoins, dans la pj, la colonne J est déplacée en colonne A. (si j'ai bien compris)
Il faudra certainement adapter le reste du document à cette modification. Je n'ai pas vérifié.
Si tu rencontres des problèmes, explique clairement ceux rencontrés.
 

Pièces jointes

  • BASE TEST V2.xlsm
    75.9 KB · Affichages: 14

patricktoulon

XLDnaute Barbatruc
bonjour
quand on travaille avec des tableaux structuré on a pas besoins d'avoir des lignes vides d'avance c'est un des avantage de cet object
exemple dans ton sheets base de données

VB:
Sub Ajout_ligne()
    With Sheets("BASE DE DONNEE").ListObjects("Tableau1341011291039")
        .ListRows.Add
        ' copier coller la ligne 3 dans la dernière ligne
        Rows("3:3").Copy .ListRows(.ListRows.Count).Range

        With .ListRows(.ListRows.Count).Range
            .Cells(10).FormulaR1C1 = "=R[-1]C+1"    'incremente en "J"
            .Cells(1).FormulaR1C1 = "=R[-1]C+1"    'incremente la date en "A"
            .Cells(2).Resize(, 2) = ""
        End With
    End With
End Sub

tu veux connaitre la dernière ligne de ton tableau ?
c'est
Code:
with Sheets("BASE DE DONNEE").ListObjects("Tableau1341011291039")
msgbox .listrows(.listrows.count).index

'l'adress en tant que range
 .listrows(.listrows.count).range.address
end with
 

Discussions similaires

Réponses
18
Affichages
505