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

Résolu/Fermé
NeoVba - 5 avril 2017 à 17:33
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 6 avril 2017 à 18:05
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.

A voir également:

5 réponses

ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
5 avril 2017 à 18:23
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
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
5 avril 2017 à 18:28
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
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
6 avril 2017 à 18:05
Ah, on n'a utilisé que mon PS... c'est déjà ça !
0
NeoVba Messages postés 5 Date d'inscription mercredi 5 avril 2017 Statut Membre Dernière intervention 11 février 2020
5 avril 2017 à 19:29
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
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
5 avril 2017 à 20:17
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
NeoVba Messages postés 5 Date d'inscription mercredi 5 avril 2017 Statut Membre Dernière intervention 11 février 2020
5 avril 2017 à 22:08
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 430
5 avril 2017 à 23:06
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
NeoVba Messages postés 5 Date d'inscription mercredi 5 avril 2017 Statut Membre Dernière intervention 11 février 2020
6 avril 2017 à 14:26
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