OVH Cloud OVH Cloud

Numérotation 1 à partir de nouvelle année

4 réponses
Avatar
Alpha
Bonsoir.
Je désire créer un système de numérotation automatique, c'est bon, j'ai la
proc avec MAX+1, mais je souhaite qu'en début d'année, les numéros
repartent de 1, comment faire ?
Merci beaucoup
Alpha

4 réponses

Avatar
Nicolas B.
Salut alpha,

En espérant que c'est ce que tu veux : lors de l'ouverture du fichier, si
l'année depuis le dernier enregistrement a changé, alors recommencer la
numérotation.

La procédure insère un nom qui contient la date du dernier enregistrement.
Si l'année de celle-ci est différente de l'année quand tu rouvre le fichier,
alors RAZ est mis à True, ce qui te permet de faire la mise à 0 dans une
autre macro.


(à placer dans ThisWorkbook)

Dim RAZ As Boolean

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
ActiveWorkbook.Names.Add Name:="Enregistrement", RefersToR1C1:Íec(Date)
End Sub

Private Sub Workbook_Open()
If Year([Enregistrement]) <> Year(Date) Then RAZ = True
MsgBox RAZ
End Sub


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir.
Je désire créer un système de numérotation automatique, c'est bon,
j'ai la proc avec MAX+1, mais je souhaite qu'en début d'année, les
numéros repartent de 1, comment faire ?
Merci beaucoup
Alpha


Avatar
Alpha
Bonsoir, Nicolas

Merci beaucoup pour ta rapidité, mais je n'ai pas bien compris, en fait,
j'ai mes dates en Colonne B, mes Numéro en C etc.
A chaque fois, que l'on va sur la page de saisie, un msgbox indique le
numéro à saisir, car cela évite de saisir 2 fois le même n°, sachant qu'il y
a des dossiers classés.
J'ai dû mal à intégrer la proc.



"Nicolas B." a écrit dans le message de
news:
Salut alpha,

En espérant que c'est ce que tu veux : lors de l'ouverture du fichier, si
l'année depuis le dernier enregistrement a changé, alors recommencer la
numérotation.

La procédure insère un nom qui contient la date du dernier enregistrement.
Si l'année de celle-ci est différente de l'année quand tu rouvre le
fichier,

alors RAZ est mis à True, ce qui te permet de faire la mise à 0 dans une
autre macro.


(à placer dans ThisWorkbook)

Dim RAZ As Boolean

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
ActiveWorkbook.Names.Add Name:="Enregistrement", RefersToR1C1:Íec(Date)
End Sub

Private Sub Workbook_Open()
If Year([Enregistrement]) <> Year(Date) Then RAZ = True
MsgBox RAZ
End Sub


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir.
Je désire créer un système de numérotation automatique, c'est bon,
j'ai la proc avec MAX+1, mais je souhaite qu'en début d'année, les
numéros repartent de 1, comment faire ?
Merci beaucoup
Alpha






Avatar
Nicolas B.
J'étais complètement à côté de la plaque :-)

Essaye ceci :

Sub Saisie()
Dim Ligne As Long
Dim Jour As Date

Ligne = Range("B1").End(xlDown)(2).Row
Jour = Date 'mets l'inputbox demandant la date

Cells(Ligne, 2) = Jour 'inscrit la date dans la dernière cellule vide
If Year(Cells(Ligne - 1, 2)) = Year(Jour) Then 'test sur l'année
Cells(Ligne, 3) = Cells(Ligne - 1, 3) + 1 'incrémente le numéro
Else
Cells(Ligne, 3) = 1 'repart à 1
End If
End Sub


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir, Nicolas

Merci beaucoup pour ta rapidité, mais je n'ai pas bien compris, en
fait, j'ai mes dates en Colonne B, mes Numéro en C etc.
A chaque fois, que l'on va sur la page de saisie, un msgbox indique le
numéro à saisir, car cela évite de saisir 2 fois le même n°, sachant
qu'il y a des dossiers classés.
J'ai dû mal à intégrer la proc.



"Nicolas B." a écrit dans le
message de news:
Salut alpha,

En espérant que c'est ce que tu veux : lors de l'ouverture du
fichier, si l'année depuis le dernier enregistrement a changé, alors
recommencer la numérotation.

La procédure insère un nom qui contient la date du dernier
enregistrement. Si l'année de celle-ci est différente de l'année
quand tu rouvre le fichier, alors RAZ est mis à True, ce qui te
permet de faire la mise à 0 dans une autre macro.


(à placer dans ThisWorkbook)

Dim RAZ As Boolean

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
ActiveWorkbook.Names.Add Name:="Enregistrement",
RefersToR1C1:Íec(Date) End Sub

Private Sub Workbook_Open()
If Year([Enregistrement]) <> Year(Date) Then RAZ = True
MsgBox RAZ
End Sub


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir.
Je désire créer un système de numérotation automatique, c'est bon,
j'ai la proc avec MAX+1, mais je souhaite qu'en début d'année, les
numéros repartent de 1, comment faire ?
Merci beaucoup
Alpha






Avatar
Alpha
Ok Nicolas après test cela fonctionne parfaitement, c'est vraiment génial,
il faut que je l'adapte.
Encore merci et bravo.
Alpha

"Nicolas B." a écrit dans le message de
news:
J'étais complètement à côté de la plaque :-)

Essaye ceci :

Sub Saisie()
Dim Ligne As Long
Dim Jour As Date

Ligne = Range("B1").End(xlDown)(2).Row
Jour = Date 'mets l'inputbox demandant la date

Cells(Ligne, 2) = Jour 'inscrit la date dans la dernière cellule vide
If Year(Cells(Ligne - 1, 2)) = Year(Jour) Then 'test sur l'année
Cells(Ligne, 3) = Cells(Ligne - 1, 3) + 1 'incrémente le numéro
Else
Cells(Ligne, 3) = 1 'repart à 1
End If
End Sub


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir, Nicolas

Merci beaucoup pour ta rapidité, mais je n'ai pas bien compris, en
fait, j'ai mes dates en Colonne B, mes Numéro en C etc.
A chaque fois, que l'on va sur la page de saisie, un msgbox indique le
numéro à saisir, car cela évite de saisir 2 fois le même n°, sachant
qu'il y a des dossiers classés.
J'ai dû mal à intégrer la proc.



"Nicolas B." a écrit dans le
message de news:
Salut alpha,

En espérant que c'est ce que tu veux : lors de l'ouverture du
fichier, si l'année depuis le dernier enregistrement a changé, alors
recommencer la numérotation.

La procédure insère un nom qui contient la date du dernier
enregistrement. Si l'année de celle-ci est différente de l'année
quand tu rouvre le fichier, alors RAZ est mis à True, ce qui te
permet de faire la mise à 0 dans une autre macro.


(à placer dans ThisWorkbook)

Dim RAZ As Boolean

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
ActiveWorkbook.Names.Add Name:="Enregistrement",
RefersToR1C1:Íec(Date) End Sub

Private Sub Workbook_Open()
If Year([Enregistrement]) <> Year(Date) Then RAZ = True
MsgBox RAZ
End Sub


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Bonsoir.
Je désire créer un système de numérotation automatique, c'est bon,
j'ai la proc avec MAX+1, mais je souhaite qu'en début d'année, les
numéros repartent de 1, comment faire ?
Merci beaucoup
Alpha