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

Créer plusieurs factures à partir d'un fichier source

  • Initiateur de la discussion Initiateur de la discussion brigadero
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

brigadero

XLDnaute Junior
Bonjour,

J'ai actuellement un fichier source appellé: "Résumé commandes" dans lequel j'ai des lignes de la forme:

Client Adresse Montant facture

Client1 Adresse1 Montant facture1
Client2 Adresse2 Montant facture2
Client3 Adresse3 Montant facture3

Et j'ai un modèle de facture unique.

Ce que je souhaiterai c'est qu'avec une macro vba j'ai trois factures qui soient créées automatiquement avec une macro, a partir du modèle de facture et qu'elles s'enregistrent sous le nom: Facture_ClientX.

Je vous copie le code que j'ai actuellement et qui marche mais seulement pour un client, ce qui me pose problème puisque je dois le faire client par client ce qui prend trop de temps.

Set Wbk1 = ThisWorkbook
Set Wbk2 = Workbooks.Open(Filename:="C:\Documents and Settings\ModeleFacture.xls")
Windows('Facture.xls").Activate
Wbk2.Sheets(1).Select

Nom_Client_choisi = Wbk1.Worksheets(6).Range("C:C").Find(Num_identifiant_choisi, lookat:=xlWhole).Offset(0, 1)

Nom_Adresse_choisi = Wbk1.Worksheets(6).Range("C:C").Find(Num_identifiant_choisi, lookat:=xlWhole).Offset(0, 2)

Montant_client_choisi = Wbk1.Worksheets(6).Range("C:C").Find(Num_identifiant_choisi, lookat:=xlWhole).Offset(0, 2)

Wbk2.Worksheets(1).Cells(9, 6).Value = Nom_Client_choisi
Wbk2.Worksheets(1).Cells(10, 6).Value = Nom_Adresse_choisi
Wbk2.Worksheets(1).Cells(11, 6).Value = Montant_client_choisi

Puis l'enregistrement:

ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\FACTURES\" & "Facture de " & Num_identifiant_choisi & "-" & Nom_Client_choisi & "-" & Month(fin_conso) & ".xls" _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

Merci d'avance.

Brigadero
 
Re : Créer plusieurs factures à partir d'un fichier source

Salut Brigadero 😉

Sans fichier, il est difficile de te répondre, voici un code d'après ce que j'ai compris
Code:
Sub Facturation()
  Dim Wbk1 As Workbook, Wbk2 As Workbook
  Dim ShtClt As Worksheet ' Feuille des commandes
  Dim DLigClt As Long, Lig As Long
  Dim FinConso As Date
  Dim NumClt As String, NomClt As String, AdresseClt As String, MontantClt As Double
  Dim NomFic As String
  ' Initialisation des variables
  Set Wbk1 = ThisWorkbook  ' Classeur des factures à faire
  Set ShtClt = Sheets(6)  ' Il est mieux de nommer le classeur
  'Set ShtClt = Sheets("NomFeuille")
  Set Wbk2 = Workbooks.Open(Filename:="C:\Documents and Settings\ModeleFacture.xls")
  ' Activer ce classeur
  ThisWorkbook.Activate
  With ShtClt
    ' Trouver la dernière ligne utilisée de la feuille
    DLigClt = .Range("C" & Rows.Count).End(xlUp).Row
    ' Pour chaque ligne en commançant par la 2ème la première étant l'entête
    For Lig = 2 To DLigClt
      ' On n'est pas obligé de passer par des variables
      FinConso = Now()
      NumClt = .Range("C" & Lig).Value
      NomClt = .Range("D" & Lig).Value
      AdresseClt = .Range("E" & Lig).Value
      MontantClt = .Range("F" & Lig).Value
      ' Inscription des valeurs
      Wbk2.Worksheets(1).Cells(9, 6).Value = NomClt
      Wbk2.Worksheets(1).Cells(10, 6).Value = AdresseClt
      Wbk2.Worksheets(1).Cells(11, 6).Value = MontantClt
      ' Création du nom du fichier
      NomFic = "Facture de " & NumClt & "-" & NomClt & "-" & Month(FinConso) & ".xls"
      Wbk2.SaveAs Filename:=NomFic
    Next Lig
  End With
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…