Numérotation spéciale

Bonjour à tous et à toutes

Une administration pour laquelle je vais des dépannages veut une numérotation de mes fiches d'intervention un peu spéciale et je ne sais vraiment pas automatiser cette action

En effet elle veut que je numérote mes bons d'intervention de la façon suivante

année en cours + mois en cours + numéro

exemple

mois de mars 2015 si il y a eu 20 interventions:

201503001 à 201503020

puis au mois d'avril si on a eu 3 interventions on reprend à 1 jusqu'à 3

201504001, 201504002, 201504003

jusqu'à la fin d'année mes bons se suivaient en incrémentant de 1 à chaque fois

c'était facile chaque fois que j'enregistrais un bon je copiais son numéro (via macro) dans une deuxième feuille (Recap) et à l'ouverture du classeur ma feuille (Fiche Inter) incrémentait le dernier numéro de la feuille Recap de 1

Pensez qu'il soit possible d'automatiser cette numérotation parce que actuellement je le fais manuellement et j'ai déjà commis quelques erreurs

Merci

Bonjour, il faudrait voir comment tu stockes tes numéros de bons, mais c'est possible. Voir PJ.

=ANNEE(B2) & TEXTE(MOIS(B2);"00") & TEXTE(SOMMEPROD((MOIS($B$2:B2)=MOIS(B2))*(ANNEE($B$2:B2)=ANNEE(B2)));"000")
7classeur1.xlsx (11.75 Ko)

Merci je vais voir si j'arrive a adapter ceci a mon classeur

déjà j'ai de l'espoir puisque c'est pas impossible

Re bonjour

Je n'ai pas réussi à réaliser ce que je voulais faire

j'ajoute un fichier pour explication mais vide de macro puisque je ne sais pas faire

Merci de m'avoir lu

Cordialement

8classeur1.xlsx (13.81 Ko)

Bonjour,

Voici une fonction à appeler par macro :

Private Function NumInc(Optional s$ = "zz")
Dim sDeb$, sFich$, Z$, sNum$
sDeb = s & Year(Date) & Format(Month(Date), "00")
sFich = sDeb & "???.dat"
Z = Dir(sFich)
If Z = "" Then
Z = sDeb & "000.dat"
Open Z For Random As #1
Close #1
End If
sNum = Format(CLng(Mid(Z, 3, 9)) + 1, "000")
Name Z As s & sNum & Right(Z, 4)
NumInc = sNum
End Function

Nota : Cette macro crée dans le répertoire de travail un fichier de zéro octet de la forme :

"zzAAAAMM000.dat" ou AAAAMM000 représente le dernier N° de facture délivré

Chaque mois (et chaque année) la numérotation repart à 001

A+

Re Bonjour

Merci Galopin01 de t’être penché sur mon cas mais je ne comprends pas comment utiliser ton bout de code

Je suis vraiment nul en VBA excel désolé

Si tu pouvais éclairer ma lanterne

en tous cas

Merci

Bonsoir,

C'est vraiment difficile, car ce classeur est vraiment "mal foutu" ! La problématique de numérotation incrémentée (comme celle des factures) doit obéir à une conception rigoureuse.

Idéalement tu devrais faire tes bons sur un modèle (*.xltm) que tu n'enregistres jamais.

Or comme tu notes d'autres "trucs" (dans la récap) dans le même classeur tu es bien obligé de l'enregistrer...

De ce fait tu auras toujours des erreurs... Soit parce que tu auras ouvert le classeur "pour rien" soit parce que tu auras enregistré une modif... et le numéro va s'incrémenter" pour rien aussi... Enfin bref, c'est pas une construction terrible !

Toujours idéalement pour éviter toute erreur, il faudrait que la numérotation se fasse au moment de la "Validation" d'un nouveau bon :

  • Soit par appui sur un bouton quand le bon est terminé.
  • Soit parce que tu imprimes le bon pour la première fois (si tu les imprimes toujours...)
  • Soit quand tu enregistres le bon "sous un autre nom" (si tu les enregistres...) L'idéal étant de les enregistrer sous le même nom que la numérotation...
La meilleure des solutions étant au moment de la première impression. (Les autres étant considérées comme des réimpressions...)

L'inscription dans la base de donnée se faisant sur un autre classeur au moment de la numérotation.

Mais là, ton modèle je sais pas trop comment l'adapter...

A+

Merci galopin01

je vais donc continuer manuellement

Bonne soirée

Rechercher des sujets similaires à "numerotation speciale"