Microsoft 365 Incrémentation d'un numéro de facture

JBL07

XLDnaute Occasionnel
Bonjour à tous !

Voici un code VBA qui me permet en cellule C6 de passer au n° de facture suivant automatiquement, quand je l'exporte sur une autre feuille d'archivage ( le contenu s'efface alors, mais ça, ça fonctionne bien ):

Sheets("Facture").Range("C6").Value = Sheets("Facture").Range("C6").Value + 1

Sauf que là, mes n° de facture sont 1 / 2 / 3 etc... Or je voudrais qu'ils soient ceci : 2020-0001 ( puis 2020-0002 etc.. et retour à 2021-0001 au premier janvier prochain )
Malgré mes recherches et tentatives, je n'arrive pas à mes fins - Qui pourrait m'éclairer ?

Merci par avance :)
 
Solution
Bonjour à tous !

Voici un code VBA qui me permet en cellule C6 de passer au n° de facture suivant automatiquement, quand je l'exporte sur une autre feuille d'archivage ( le contenu s'efface alors, mais ça, ça fonctionne bien ):

Sheets("Facture").Range("C6").Value = Sheets("Facture").Range("C6").Value + 1

Sauf que là, mes n° de facture sont 1 / 2 / 3 etc... Or je voudrais qu'ils soient ceci : 2020-0001 ( puis 2020-0002 etc.. et retour à 2021-0001 au premier janvier prochain )
Malgré mes recherches et tentatives, je n'arrive pas à mes fins - Qui pourrait m'éclairer ?

Merci par avance :)
Bonjour,
Essaye ceci
VB:
Sub N°facture()
    Dim x&, D&
    With Sheets("Facture")
        On Error Resume Next
        D = Left(.[c6], 4): x =...

Jacky67

XLDnaute Barbatruc
Bonjour à tous !

Voici un code VBA qui me permet en cellule C6 de passer au n° de facture suivant automatiquement, quand je l'exporte sur une autre feuille d'archivage ( le contenu s'efface alors, mais ça, ça fonctionne bien ):

Sheets("Facture").Range("C6").Value = Sheets("Facture").Range("C6").Value + 1

Sauf que là, mes n° de facture sont 1 / 2 / 3 etc... Or je voudrais qu'ils soient ceci : 2020-0001 ( puis 2020-0002 etc.. et retour à 2021-0001 au premier janvier prochain )
Malgré mes recherches et tentatives, je n'arrive pas à mes fins - Qui pourrait m'éclairer ?

Merci par avance :)
Bonjour,
Essaye ceci
VB:
Sub N°facture()
    Dim x&, D&
    With Sheets("Facture")
        On Error Resume Next
        D = Left(.[c6], 4): x = Right(.[c6], 4)
        If D <> Year(Date) Then x = 0
        x = x + 1
        .[c6].Value = Year(Date) & "-" & Format(x, "0000")
    End With
End Sub

Attention toutefois
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
bonjour
bientot on va nous obliger d'utiliser une certaine marque d'outillage pour travailler :p ;)
je pense que cette article est suspect
il me semble pas avoir vu quelque part que l'on soit obligé d'utiliser tel ou tel support pour travailler

pour anti fraude TVA
si il y en a un qui me dis qu'un logiciel n'est pas piratable c'est un utopiste ;)
 

Claudy

XLDnaute Accro
Bonjour JBL07,
un format personnalisé?
1579334076644.png

Bonne journée,
Claudy
 

JBL07

XLDnaute Occasionnel
Merci à tous pour vos interventions :)
Jacky67, ta solution fonctionne parfaitement et comme je pense que j'intègre mal la plus simple de patricktoulon, je m'en tiens là.
Claudy, merci j'avais testé le format personnalisé, mais à l'export en PDF, je ne retrouvais pas le format entier dans le nom de facture , mais juste le 1 / 2 / 3 etc...
Et quand à mon activité, pas de TVA, c'est de la prestation de services, tout va bien ( pour le moment ! )
Encore merci !
 

dg62

XLDnaute Barbatruc
Bonjour le Fil,
En complément trouvé sur le web

"D'autre part, la loi anti-fraude dont vous parlez c'est la loi des finances 2016 voté fin décembre 2015, cette loi ne change pas les normes d'établissements des factures notamment exigées par le fisc, cette loi impose uniquement aux entrepreneurs de détenir le certificat de conformité de leur logiciel, délivré par l'éditeur du logiciel et validé par un des 2 organismes autorisés AFNOR ou LNE (Laboratoire national de métrologie et d'essais)
Cette loi s'adresse donc qu'à ceux qui ont un logiciel de caisse ou une caisse enregistreuse, celui qui tient sa caisse sur un cahier n'est pas concerné. "
 

patricktoulon

XLDnaute Barbatruc
Bonsoir Jacky67
Bonjour patricktoulon
Oui, certes, mais ne répond pas tout à fait à la demande
Or je voudrais qu'ils soient ceci : 2020-0001 ( puis 2020-0002 etc.. et retour à 2021-0001 au premier janvier prochain )
y a qu'a demander j'ai plus simple a te proposer ;)
a l'open ou commandé comme tu veux par une sub
[A1] = IIf(Year(Date) > Val([A1].Text), 1, [A1].Value + 1)
Feuil1.[A1].NumberFormat = Year(Date) & "-" & "0000"


on examine le ".text" pour l'année on applique sur le ".value"
 

Discussions similaires

Statistiques des forums

Discussions
315 132
Messages
2 116 589
Membres
112 799
dernier inscrit
valdeff