Génération plusieurs factures PDF
Bonjour,
J'ai :
- un onglet base de données avec en colonne 1 les numéros de facture
- un onglet facture, sur la cellule num facture j'ai fait une liste déroulante ayant comme données les num de facture se situant dans le premier onglet
Sur l'onglet facture à chaque changement de num facture les données se mettent à jour en fantion des donnée de l'onglé base de données.
Je ne maitrise pas les macro, en m'aidant de ce que j'ai pu trouver comme code j'ai compilé celui ci dessous dans l'espoire de générer toute les factures en PDF en les nommants " num fact + nom client" .
Seulement si je veux éditer que la facture choisi le code fonctionne, mais quand je répond oui à "générer toutes les factures du mois" ca mouline bien toute les factures mais il n'y à que la dernière de générer et le nom du PDF correspond au nom de la premiere facture. et la je bloque. Pouvez vous me venir en aide ?
Sub GENERER FACTURE PDF()
Dim c As Range, choix As Long, savSelection As String
NumFact = Range("M22")
NomClient = Range("m5")
chemin = "C:\Users\jwilser\Desktop\Factures"
choix = MsgBox("Voulez-vous Générer toutes les factures du mois?", vbQuestion + vbYesNoCancel + vbDefaultButton2, "Etendue impression")
If choix = vbCancel Then Exit Sub
If choix = vbNo Then
' Générer feuille PDF
If MsgBox("Voulez-vous générer uniquement cette facture?", vbYesNo) = vbYes Then
Sheets("FactENTETE@").Select
ChDir "C:\Users\jwilser\Desktop\Factures"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NumFact & " " & NomClient, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Else
Exit Sub
End If
Else
' Générer tout en PDF
Application.ScreenUpdating = False
savSelection = [M22]
For Each c In [Ref_fact]
[M22] = c.Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NumFact & " " & NomClient, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Next c
[M22] = savSelection
End If
Sheets("FactENTETE@").Select
MsgBox "Génération terminée"
End Sub