XL 2010 Modèle de facture

luno123

XLDnaute Occasionnel
Bonjour,

Je voudrais mettre en place un modèle de facturation (autoentrepreneur) via Excel. J'aurais besoin de votre aide pour:
- sélectionner le nom du client (saisi au préalable sur l'onglet "client") via un menu déroulant dans la zone 1(Résolu grâce à l'aide d'ELOIIID)
- Zone 2: Autosaisi du numéro de facture selon le compteur et la dernière facture validée : le numéro de facture commence par FC+JJ+MM+"compteur"

Merci d'avance pour votre aide précieuse

Luno
 

Pièces jointes

  • facture luno.xls
    45.5 KB · Affichages: 44
Dernière édition:

eloiiid

XLDnaute Nouveau
bonjour Luno123,
pour le nom du client tu peux le faire en utilisant l'outil validation des données, formats admis liste et la plage de ta feuille client
ensuite pour le reste des infrmations utilise RECHERCHEV
ensuite pour ton numéro je ferai un petit bouton avec une macro que tu dois réadapter
VB:
Dim Monrep
    Dim MaLigne As String
    MaLigne = ""
    'Gestion d'erreur

    On Error GoTo 0
 
    Sheets("DB").Activate
    Nombre_ligne = Range("D" & Rows.Count).End(xlUp).row
    MaLigne = Nombre_ligne + 1
    
    numero = Range("D" & Nombre_ligne)
        
    referenceA = Left(numero, 6)
    val_ref = Len(numero)
    val_referenceA = Len(referenceA)
    referenceB = Right(numero, val_ref - val_referenceA)           
    referenceB = referenceB + 1
      
    reference = referenceA & referenceB
:
 

luno123

XLDnaute Occasionnel
bonjour Luno123,
pour le nom du client tu peux le faire en utilisant l'outil validation des données, formats admis liste et la plage de ta feuille client
ensuite pour le reste des infrmations utilise RECHERCHEV
ensuite pour ton numéro je ferai un petit bouton avec une macro que tu dois réadapter
VB:
Dim Monrep
    Dim MaLigne As String
    MaLigne = ""
    'Gestion d'erreur

    On Error GoTo 0

    Sheets("DB").Activate
    Nombre_ligne = Range("D" & Rows.Count).End(xlUp).row
    MaLigne = Nombre_ligne + 1
   
    numero = Range("D" & Nombre_ligne)
       
    referenceA = Left(numero, 6)
    val_ref = Len(numero)
    val_referenceA = Len(referenceA)
    referenceB = Right(numero, val_ref - val_referenceA)          
    referenceB = referenceB + 1
     
    reference = referenceA & referenceB
:
Bonjour Eloiiid,

Merci pour tes conseils. J'ai réussi pour la partie client.(Cf. PJ). Par contre je n'ai pas réussi à adapter la macro...
 

eloiiid

XLDnaute Nouveau
Bonjour,

avec quelques éléments explicatif sur mon code est ce que c'est mieux pour adapter?

VB:
Dim Monrep
    Dim MaLigne As String
    MaLigne = ""
    'Gestion d'erreur

    On Error GoTo 0

    Sheets("DB").Activate ' tu defini ta feuille à incrémenté'
    Nombre_ligne = Range("D" & Rows.Count).End(xlUp).row'tu compte ton nombre de ligne non vide
    MaLigne = Nombre_ligne + 1'tu incrémentes
  
   'partie qui vas faire garder ton formalisme de facturation:'
  
    numero = Range("D" & Nombre_ligne)
      
    referenceA = Left(numero, 6) 'partie à ne pas incrémenté (nombre de valeurs à ne pas toucher)'
    
    val_ref = Len(numero)
    val_referenceA = Len(referenceA)
    referenceB = Right(numero, val_ref - val_referenceA)         
    referenceB = referenceB + 1 ' partie à incrémenté'
    
    reference = referenceA & referenceB 'concaténation'
 

patricktoulon

XLDnaute Barbatruc
bonjour

incrementation facture

FC+JJ+MM+"compteur"

le seul soucis avec cette méthode c'est qu'il va te falloir gérer l'annulation (au cas ou tu abandonne le rédigé de la facture)
et aussi le fait que tu pourra faire 1,2,3 factures pour un même devis(âpres travaux effectués)(paiement en plusieurs fois)ce qui cause un soucis de Référencement
pour ma part j'ai pris la seule décision raisonnable qui est d’extérioriser les indexations devis facture dans (un fichier INI externe)
ca réduit considérablement les codes et les save et resave
le fichier ini peut être simplement un csv ou un .txt dans le dossier de ton applicatif (devis /facturier)
chez moi l’incrémentation facture est crée avec le numero de devis+increm facture sur fichier ini
au regard du numero de facture je sais ou est le devis facture courrier éventuel etc....

pour info mon application complete
application devis/facturier /mail CDO /courrier papier /dossier devis/ dossier facture/fournisseurs/commande/bilan mensuel et annuel tient dans une cle de 2 giga ;)

tout vouloir faire sur une feuille exel n'est pas une bonne pratique et complique les choses

A méditer;)
 

luno123

XLDnaute Occasionnel
bonjour

incrementation facture



le seul soucis avec cette méthode c'est qu'il va te falloir gérer l'annulation (au cas ou tu abandonne le rédigé de la facture)
et aussi le fait que tu pourra faire 1,2,3 factures pour un même devis(âpres travaux effectués)(paiement en plusieurs fois)ce qui cause un soucis de Référencement
pour ma part j'ai pris la seule décision raisonnable qui est d’extérioriser les indexations devis facture dans (un fichier INI externe)
ca réduit considérablement les codes et les save et resave
le fichier ini peut être simplement un csv ou un .txt dans le dossier de ton applicatif (devis /facturier)
chez moi l’incrémentation facture est crée avec le numero de devis+increm facture sur fichier ini
au regard du numero de facture je sais ou est le devis facture courrier éventuel etc....

pour info mon application complete
application devis/facturier /mail CDO /courrier papier /dossier devis/ dossier facture/fournisseurs/commande/bilan mensuel et annuel tient dans une cle de 2 giga ;)

tout vouloir faire sur une feuille exel n'est pas une bonne pratique et complique les choses

A méditer;)
Bonjour Patrick

effectivement, je n'avais pas pensé à ces points...merci pour le conseil
 

luno123

XLDnaute Occasionnel
Bonjour,

avec quelques éléments explicatif sur mon code est ce que c'est mieux pour adapter?

VB:
Dim Monrep
    Dim MaLigne As String
    MaLigne = ""
    'Gestion d'erreur

    On Error GoTo 0

    Sheets("DB").Activate ' tu defini ta feuille à incrémenté'
    Nombre_ligne = Range("D" & Rows.Count).End(xlUp).row'tu compte ton nombre de ligne non vide
    MaLigne = Nombre_ligne + 1'tu incrémentes
 
   'partie qui vas faire garder ton formalisme de facturation:'
 
    numero = Range("D" & Nombre_ligne)
     
    referenceA = Left(numero, 6) 'partie à ne pas incrémenté (nombre de valeurs à ne pas toucher)'
   
    val_ref = Len(numero)
    val_referenceA = Len(referenceA)
    referenceB = Right(numero, val_ref - val_referenceA)        
    referenceB = referenceB + 1 ' partie à incrémenté'
   
    reference = referenceA & referenceB 'concaténation'
Bonjour, Eloiid,

je te remercie encore pour toutes ces explications. Malheureusement, je n'y arrive pas. Il faut dire que je ne suis pas l'expert des macros.
 

sousou

XLDnaute Barbatruc
Bonjour Sousoou,

Merci pour les fichiers, je vais les adapter à mon besoin.
Bonjour Sousoou,

Merci pour les fichiers, je vais les adapter à mon besoin.
re
Le code pourra te paraître assez austère, mais son coeur à été développé pour gérer une ou plusieurs base de données dans un même fichier (ici2), et j'utilise son noyau dans d'autres appli, alors des chose te sembleront inutiles.
N'hésite pas à poser des questions
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 721
Membres
110 551
dernier inscrit
Khyolyanna