Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Numérotation automatique d'une facture

15 réponses
Avatar
Mamiwata
Bonjour,

je souhaite automatiser une tâche à l'ouverture d'un classeur Excel 2007.
Actualiser un numéro sous le format mois/année/numéro (06/09/100..101...102)
J'ai testé plusieurs macros trouvées sur le net, mais aucune ne fonctionne
comme il faut et je préfère me tourner vers de vrais professionnels (voire
génies).

Merci pour l'intérêt que vous porterez à ma requête.
PS: Je maîtrise un peu le VBA, je suis en mesure de comprendre les bases,
vous pouvez donc utiliser votre vocabulaire habituel. :.)

Gwen

10 réponses

1 2
Avatar
FFO
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois et l'année
en cours

Celà devrait convenir

Dis moi !!!!
Avatar
Mamiwata
Merci de ta réponse, mais je teste et dès la première ligne j'ai une erreur
de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et pas sur
du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois et
l'année
en cours

Celà devrait convenir

Dis moi !!!!



Avatar
isabelle
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai une
erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et pas
sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois et
l'année
en cours

Celà devrait convenir

Dis moi !!!!






Avatar
Mamiwata
Désolée Isabelle, ce n'est pas assez clair pour moi...
Peux-tu préciser dans quel sens mettre quoi ou ne pas mettre?

Merci


"isabelle" a écrit dans le message de
news:%23AFLI%
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai une
erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et pas
sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois et
l'année
en cours

Celà devrait convenir

Dis moi !!!!








Avatar
isabelle
bonjour Mamiwata,

tu mets les lignes de code à l'intérieur de la macro événementielle,
si je reprend ton exemple :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim m As String, a As String, no As Integer
m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no
End Sub

isabelle

Mamiwata a écrit :
Désolée Isabelle, ce n'est pas assez clair pour moi...
Peux-tu préciser dans quel sens mettre quoi ou ne pas mettre?

Merci


"isabelle" a écrit dans le message de
news:%23AFLI%
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai une
erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et
pas sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois
et l'année
en cours

Celà devrait convenir

Dis moi !!!!











Avatar
isabelle
ps/

la cellule "no_facture" doit être préalablement renseigner avec la
valeur 06/25/01

isabelle

Mamiwata a écrit :
Désolée Isabelle, ce n'est pas assez clair pour moi...
Peux-tu préciser dans quel sens mettre quoi ou ne pas mettre?

Merci


"isabelle" a écrit dans le message de
news:%23AFLI%
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai une
erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et
pas sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois
et l'année
en cours

Celà devrait convenir

Dis moi !!!!











Avatar
Mamiwata
Désolée, mais sans succés.
je retenterai plus tard..
Merci


"isabelle" a écrit dans le message de
news:%
bonjour Mamiwata,

tu mets les lignes de code à l'intérieur de la macro événementielle,
si je reprend ton exemple :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim m As String, a As String, no As Integer
m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no
End Sub

isabelle

Mamiwata a écrit :
Désolée Isabelle, ce n'est pas assez clair pour moi...
Peux-tu préciser dans quel sens mettre quoi ou ne pas mettre?

Merci


"isabelle" a écrit dans le message de
news:%23AFLI%
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai une
erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et pas
sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois et
l'année
en cours

Celà devrait convenir

Dis moi !!!!













Avatar
isabelle
bonjour Mamiwata,

le fichier qui sert à tester la macro contient t'il une cellule nommée
"no_facture" ?
est ce que tu as, au préalable, renseigner la cellule "no_facture" avec
la valeur 06/25/01 par exemple ?
as-tu copier la macro sur la page code de ThisWorkBook ?
si tu as répondu oui à ces 3 questions, que se passe t'il lorsque tu
enregistre le classeur ?
y a t'il un message d'erreur ?

isabelle

Mamiwata a écrit :
Désolée, mais sans succés.
je retenterai plus tard..
Merci


"isabelle" a écrit dans le message de
news:%
bonjour Mamiwata,

tu mets les lignes de code à l'intérieur de la macro événementielle,
si je reprend ton exemple :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim m As String, a As String, no As Integer
m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no
End Sub

isabelle

Mamiwata a écrit :
Désolée Isabelle, ce n'est pas assez clair pour moi...
Peux-tu préciser dans quel sens mettre quoi ou ne pas mettre?

Merci


"isabelle" a écrit dans le message de
news:%23AFLI%
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai
une erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel
As Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et
pas sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois
et l'année
en cours

Celà devrait convenir

Dis moi !!!!
















Avatar
Mamiwata
Oui aux trois questions, il se passe effectivement quelque chose, mais le
format ne va pas il me donne 09/06/2001....je tourne en rond...

à quoi correspondent ces 06/25/01?

Rereremerci Isabelle


"isabelle" a écrit dans le message de
news:
bonjour Mamiwata,

le fichier qui sert à tester la macro contient t'il une cellule nommée
"no_facture" ?
est ce que tu as, au préalable, renseigner la cellule "no_facture" avec la
valeur 06/25/01 par exemple ?
as-tu copier la macro sur la page code de ThisWorkBook ?
si tu as répondu oui à ces 3 questions, que se passe t'il lorsque tu
enregistre le classeur ?
y a t'il un message d'erreur ?

isabelle

Mamiwata a écrit :
Désolée, mais sans succés.
je retenterai plus tard..
Merci


"isabelle" a écrit dans le message de
news:%
bonjour Mamiwata,

tu mets les lignes de code à l'intérieur de la macro événementielle,
si je reprend ton exemple :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim m As String, a As String, no As Integer
m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no
End Sub

isabelle

Mamiwata a écrit :
Désolée Isabelle, ce n'est pas assez clair pour moi...
Peux-tu préciser dans quel sens mettre quoi ou ne pas mettre?

Merci


"isabelle" a écrit dans le message de
news:%23AFLI%
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai une
erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et
pas sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois et
l'année
en cours

Celà devrait convenir

Dis moi !!!!


















Avatar
Mamiwata
Ça y est!!!!!!
ENFIN....
du coup je sais plus si si j'ai mis dans ma cellule 25/06/100 et ça
marche....
Je reessaye, je suis trop contente, merci Isabelle...


"Mamiwata" a écrit dans le message de
news:
Oui aux trois questions, il se passe effectivement quelque chose, mais le
format ne va pas il me donne 09/06/2001....je tourne en rond...

à quoi correspondent ces 06/25/01?

Rereremerci Isabelle


"isabelle" a écrit dans le message de
news:
bonjour Mamiwata,

le fichier qui sert à tester la macro contient t'il une cellule nommée
"no_facture" ?
est ce que tu as, au préalable, renseigner la cellule "no_facture" avec
la valeur 06/25/01 par exemple ?
as-tu copier la macro sur la page code de ThisWorkBook ?
si tu as répondu oui à ces 3 questions, que se passe t'il lorsque tu
enregistre le classeur ?
y a t'il un message d'erreur ?

isabelle

Mamiwata a écrit :
Désolée, mais sans succés.
je retenterai plus tard..
Merci


"isabelle" a écrit dans le message de
news:%
bonjour Mamiwata,

tu mets les lignes de code à l'intérieur de la macro événementielle,
si je reprend ton exemple :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Dim m As String, a As String, no As Integer
m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no
End Sub

isabelle

Mamiwata a écrit :
Désolée Isabelle, ce n'est pas assez clair pour moi...
Peux-tu préciser dans quel sens mettre quoi ou ne pas mettre?

Merci


"isabelle" a écrit dans le message de
news:%23AFLI%
bonjour Mamiwata,

m = Format(Date, "mm")
a = Format(Date, "yy")
no = Split(Range("no_facture"), "/")(2) + 1
Range("no_facture") = m & "/" & a & "/" & no

isabelle

Mamiwata a écrit :
Merci de ta réponse, mais je teste et dès la première ligne j'ai une
erreur de syntaxe, "attendu une expression" ???

J'ai celle ci qui fonctionne super pour un nombre pur:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Range("no_facture").Value = Range("no_facture").Value + 1
End Sub

je ne dois pas être trop loin, il me manque ce format date...
Peut être cela peut-il t'orienter vers une autre piste???

NB:Je veux par contre de préférence rester sur du Workbook_Open et
pas sur du Before_Save

Merci Merci



"FFO" a écrit dans le message de
news:
Soit la cellule A1 de la Feuil1 ayant le numéro
Mets dans le ThisWorkbook du classeur ce code :

Private Sub workbook_open()
Sheets("Feuil1").Range("A1") = Format(Date, "mm/yy") & "/" &
Split(Sheets("Feuil1").Range("A1"), "/")(2) + 1
End Sub

A chaque ouverture la cellule A1 s'incrémentera de 1 avec le mois
et l'année
en cours

Celà devrait convenir

Dis moi !!!!





















1 2