Ajout d'une ligne et numéro en série

Résolu
NeoVba -  
Zoul67 Messages postés 2001 Statut Membre -
Bonjour,

J'ai un problème de codage pour un numéro séquentiel en excel.

J'essais de créer un bouton qui, lorsque cliqué, crée une nouvelle ligne à la fin du tableau. J'ai trouvé en ligne le codage suivant:

Sub Insert_New_Rows()

Dim Lr As Integer

Lr = Range("A" & Rows.Count).End(xlUp).Row 'Searching last row in column A
Rows(Lr + 1).Insert Shift:=xlDown 'Inserting new row
Cells(Lr + 1, "A") = Cells(Lr, "A") + 1 'Adding a sequential number
Rows(Lr).Copy 'Copying format of last row
Rows(Lr + 1).PasteSpecial Paste:=xlPasteFormats 'Pasting format to new row
Application.CutCopyMode = False 'Deactivating copy mode

End Sub

Ce codage me permet en effet d'ajouter une ligne à la fin de mon tableau. Toutefois il ajoute une simple valeur numérique (le 1). Or, je souhaiterais que la ligne créée soit de ce format : aaaamm-01.

Par exemple: je veux une nouvelle ligne, je veux que le nom dans ma cellule A (les entrées commencent en cellule A5) soit 201704-01. Le -01 représente le numéro du dossier. Ainsi je voudrais que soient indiqués l'année et le mois en cours ainsi que le numéro de dossier, lequel devrait être réinitialisé à chaque début de mois.

Comme la question est complexe et que mes connaissances de codes remontent à une quinzaine d'années, je ne réussi pas à faire cette implétion au codage. Quelqu'un aurait une suggestion?

Merci de votre attention.

5 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    Il faudrait en dire plus
    En colonne A tu as des dates ?
    L'incrémentation porte sur la date,le mois,le n° de dossier ?
    Sans fichier, difficile de t'aider
    Peux tu envoyer un bout de ton fichier anonymisé, mais avec la même structure que l'original,sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter des explications et des exemples de résultat attendu
    1) Tu vas dans https://www.cjoint.com/
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
    3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
    en bleu souligné ; tu le sélectionnes et tu fais "Copier"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
    tu fais "Coller".

    Cdlmnt
    0
  2. Zoul67 Messages postés 2001 Statut Membre 149
     
    Bonjour,

    Il faut affiner le code pour faire ce "+1", sinon tu vas avoir des problèmes lors des changements de mois.
    Je propose :

        prefixe = CStr(Year(Date) * 100 + Month(Date)) & "-"
        If Left(Cells(Lr, 1).Value, 7) = prefixe Then
            Cells(Lr + 1, 1).Value = prefixe & Format(Right(Cells(Lr, 1).Value, 2) + 1, "00")
        Else
            Cells(Lr + 1, 1).Value = prefixe & "01"
        End If


    A+

    PS : crée-toi un compte, les utilisateurs anonymes n'inspirent pas trop confiance.
    0
    1. Zoul67 Messages postés 2001 Statut Membre 149
       
      Ah, on n'a utilisé que mon PS... c'est déjà ça !
      0
  3. NeoVba Messages postés 6 Statut Membre
     
    Bonjour,

    Vous trouverez ci-dessous le document excel en question. J'ai indiqué dans la cellule A5 le format que je souhaiterais associer au document.

    Toute suggestion sera appréciée.

    http://www.cjoint.com/c/GDfrzL2JDUn
    0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Tu ne donnes aucune explication.
    Dans ta feuille, il y a 201703-01 en A5
    On clique sur le bouton
    Que doit on retrouver en A6 ?

    Cdlmnt
    0
    1. NeoVba Messages postés 6 Statut Membre
       
      Dans la case A6, lorsque le bouton 2 est sélectionné, il faudrait que l'information inscrite soit 201703-02.

      Comme vous pouvez le constater, il s'agit de l'indication de l'année, suivi du mois et suite au tiret, du numéro séquentiel de l'entrée.

      Ainsi, tant que nous sommes par exemple en mars, le numéro continuera de monter (...03-03, ...03-04 [..] ...03-26.

      Déjà je ne réussi pas à créer ce type de numérotation au document et j'aimerais que si je crée une nouvelle entrée le mois suivant, par exemple en avril, lorsque la nouvelle ligne serait crée, elle indique en "A", 201704-01.

      J'ai essayé plus information avec année et mois et j'obtiens toujours une erreur. Je ne saisi pas comment créer cette valeur et l'insérer au codage.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    si je crée une nouvelle entrée le mois suivant, par exemple en avril, lorsque la nouvelle ligne serait crée, elle indique en "A", 201704-01.
    Le mois à faire figurer est celui du jour où l'entrée est effectuée ?
    Si oui, .... à tester
    http://www.cjoint.com/c/GDfvfKf57us

    Cdlmnt
    0
    1. NeoVba Messages postés 6 Statut Membre
       
      Wow, super, exactement ce que je souhaitais merci. Je peux pousser l'audace pour demander une suggestion de lecture pour acquérir des connaissances vba qui me permettraient de trouver cette solution par moi-même?
      0