Code VBA pour numérotation automatique avec concaténation d'année

WISEDOME

XLDnaute Junior
Bonsoir à tous,

Je suis encore là pour exposer mes problèmes! j'espère intervenir un jour pour résoudre des problème et non en exposer.

Je souhaite en fait faire un numérotation automatique d'un enregistrement par simple click sur un Commandbutton selon la forme suivante:

00012012, our les 04 derniers chiffres représentent l'année budgétaire que je sélectionne dans une combobox affichée sur le Userform. Les quatres premiers chiffres constituent l'ordre d'enregistrement d'un dossier pour l'année précédemment sélectionnée(Ces chiffres sont consécutifs et ne se répètent pas pour une même année).

Ainsi dans la même colonne d'enregistrement, on pourrait avoir ceci:

00012012
00012011
00022012

J'ai cherché en vain sur le forum, des solutions qui pourraient m'aider. Je vous pries de bien vouloir m'aider svp.

Vous trouverez un morceau de mon fichier en pièce jointe.

Merci d'avance.

Wise.
 

Pièces jointes

  • Numérotation auto avec concaténation année.xlsm
    18.2 KB · Affichages: 167

job75

XLDnaute Barbatruc
Re : Code VBA pour numérotation automatique avec concaténation d'année

Re,

La macro pour trier le tableau par années :

Code:
Sub Tri() 'par années
Dim tablo, i&, t$
Feuil1.Activate 'sécurité
tablo = Range("A1:A2", Cells(Rows.Count, 1).End(xlUp))
For i = 1 To UBound(tablo)
  t = tablo(i, 1)
  If IsNumeric(t) And Len(t) > 4 Then _
    tablo(i, 1) = Right(t, 4) & Format(Left(t, Len(t) - 4), "0000")
Next
Application.ScreenUpdating = False
[A1].Resize(UBound(tablo)) = tablo
[A:A].Sort [A1], Header:=xlYes 'tri
tablo = Range("A1:A" & UBound(tablo))
For i = 1 To UBound(tablo)
  t = tablo(i, 1)
  If IsNumeric(t) And Len(t) > 4 Then _
    tablo(i, 1) = Val(Mid(t, 5) & Left(t, 4))
Next
[A1].Resize(UBound(tablo)) = tablo
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Numérotation(2).xls
    68 KB · Affichages: 159
Dernière édition:

WISEDOME

XLDnaute Junior
(RESOLU) Code VBA pour numérotation automatique avec concaténation d'année

Bonjour à tous,

Encore un Génie ce Job75. Vous êtes vraiment formidables les gars. J'ai à présent deux solutions qui répondent parfaitement à mon problème. J'ai l'embarras du choix, mais bon c'est tant mieux.


Mais dis pour ma propre gouverne, à quoi pourrait ressembler une macro pour le tri des numéros selon le critère année.

Merci, Merci et Merci à vous deux (BrunoM45 et Job75).
 
C

Compte Supprimé 979

Guest
Re : Code VBA pour numérotation automatique avec concaténation d'année

Bonjour le fil, job75

J'interviens (un peu tard et pour le fun) pour signaler que le format du post #1 (l'année à la fin) ne pose aucun problème.
Mon cher Job75, rien ne pose jamais problème, sauf qu'un tri tout simple se transforme en machine de guerre avec code VBA

Mon but sur ce forum n'est pas de compliquer les choses à coup de "tableau VBA" (on sait que tu connais),
mais de toujours essayer de faciliter l'utilisation du fichier pour un quidam

PS : on peut même trier le tableau suivant les années, mais il faut une macro...
Et oui, c'est bien ce que je disais ;)
 

job75

XLDnaute Barbatruc
Re : (RESOLU) Code VBA pour numérotation automatique avec concaténation d'année

Bonjour WISEDOME, Bruno,

Mon but sur ce forum n'est pas de compliquer les choses à coup de "tableau VBA" (on sait que tu connais),
mais de toujours essayer de faciliter l'utilisation du fichier pour un quidam

Bien d'accord avec toi, c'est pourquoi j'ai précisé que mon intervention était "pour le fun".

Mais dis pour ma propre gouverne, à quoi pourrait ressembler une macro pour le tri des numéros selon le critère année.

J'en ai fait une au post #16.

A+
 

Statistiques des forums

Discussions
312 330
Messages
2 087 337
Membres
103 524
dernier inscrit
Smile1813