Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 code vba

VinceARomiac

XLDnaute Nouveau
Hello Bonjour a tous,

Je suis nouveau

J'ai un petit soucis avec mon code VBA , et je vous prie de bien vouloir m'assister , c'est une systeme de facture , qui grace ce code me permet de numeroter au niveau superieur la facture voici le code


Sub nouveau_devis()

annee = Year(Date)
mois = Format(Month(Date), "00")
ID = Right(Sheets("Devis").Range("J10"), 4)
anneeFacture = Mid(Sheets("Devis").Range("J10"), 2, 4)


If Int(annee) = Int(anneeFacture) Then
Range("J10") = "F" & annee & "-" & mois & "-" & Format(Int(ID) + 1, "0000")
Else
Range("J10") = "F" & annee & "-" & mois & "-" & "0001"
End If


Sheets("Devis").Range("F20:F32").Value = ""
Sheets("Devis").Range("I20:I32").Value = ""
Sheets("Devis").Range("I14").Value = ""

End Sub
 
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Vu qu'il n'y a pas de fichier joint ?? ( ce qu'on demande ici en 1er !!)
Je ne vois pas ce que tu veux faire ???
Sinon impossible d'avoir l'égalité tel quel du > If Int(annee) = Int(anneeFacture) ????
A la rigueur , je ne vois que ça de potable qui serait parlant au cas ou en J10 on ai une date classique du genre> 12/05/2023
VB:
anneeFacture = Mid(Sheets("Devis").Range("J10"), 7, 4)
 

VinceARomiac

XLDnaute Nouveau
 

Pièces jointes

  • Application.xlsm
    45.3 KB · Affichages: 9

ChTi160

XLDnaute Barbatruc
Bonjour le Fil
Bienvenue a Stephane
tu as :
VB:
anneeFacture = Mid(Sheets("Devis").Range("J10"), 2, 4)
alors que ton numéro de Facture se trouve en Cellule "J9"
Jean marie
Oups pas vu @Phil69970 Lol
 

ChTi160

XLDnaute Barbatruc
Re
je n'ai pas encore regardé le Fichier de Phil mais j'y vais Lol

une modification Possible du Code de Stephane :
VB:
Dim StrFacture$, ID As Integer, AnneeFacture As Integer
StrFacture = 1
With Sheets("Devis")
    If .Range("J9") <> Empty Then
                       ID = Right(.Range("J9"), 4) 'on récupére l'index de la facture
        AnneeFacture = Mid(.Range("J9"), 2, 4) 'on récupére l'année du Numéro de la Facture
    End If
End With
          StrFacture = IIf(Int(Year(Date)) = Int(AnneeFacture), Int(ID) + 1, StrFacture)
       Range("J9") = "F" & Format(Date, "yyyy-mm-") & Format(StrFacture, "0000")
    StrFacture = Empty
edit :
je viens de voir le Code De Phil et on a pensé à la formater autrement à partir de la Date Moi et de Now et Month() pour Phil
Code:
"D" & Year(Now) & "-" & Format(Month(Date), "00") & "-"
et moi
Code:
 "F" & Format(Date, "yyyy-mm-")
Je n'avais pas regardé que le Dernier Numéro de Facture était en feuille Paramètre Lol
Jean marie
 

Phil69970

XLDnaute Barbatruc
Re

C'est uniquement si tu veux adapté sur la partie facture

Petite modif pour que cela fonctionne sur la facture ==> la partie tout mâché !!!!
*Jai supposé que tu as une feuille qui s'appelle "Facture" sinon il faudra adapter la partie pré-mâché

Je t'ai tout mâché pour faire la même chose sur la facture ....

Et pour la réinitialisation
Merci c'est ok , mais neanmoins lorsque le numero passe au suivant la facture ne se reinitialise pas , je vais ajouter un code pour y remedier
Tu rajoutes ceci (la partie en rouge)

annuler_devis
End sub

J'ai fait la modif sur la V2 ....



@Phil69970
 

Pièces jointes

  • Numero Devis V2.xlsm
    47.5 KB · Affichages: 11
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…