Bonjour,
Je dispose d’un état Access avec plusieurs pages et surtout plusieurs sociétés différentes généré sur la base d'une requête.
Je voulais obtenir un document PDF par société sans avoir à passer par la manip imprimer en PDF pages 1 à 3, pages 4 à 5, pages 6 à 10 etc....
Après des recherches sur le net j'ai réussi à obtenir une extraction automatique d'un document PDF par société mais un problème persiste.
Je m'explique :
EXEMPLE :
SOCIETE1 = 10 lignes dans la requête. Alors mon code va permettre de créer une 1ère fois un document PDF appelé SOCIETE1 qui reprend toutes les informations sur cette société.
Puis il passe à la ligne deux qui concerne également la SOCIETE1, il me créé alors le même document qui écrase le 1er et cela 10 fois.
Le temps de création des fichiers et donc très long. Je souhaiterais, qu'une fois le PDF SOCIETE1 créé il passe direct à la SOCIETE2 sans lire toutes les lignes de la SOCIETE1.
Si quelqu'un pouvez m'aider ce serait génial
Ci-dessous mon code :
Function MacroSociete()
Dim strFichier As String
Dim strFichierPDF As String
Dim strFiltre As String
Dim rst As dao.Recordset
' Nom de l'état à imprimer
strEtat = "Etat societe"
' Nom de base du fichier PDF à créer
strFichier = "C:\Users\Vasset_Eme\Desktop\NouveauDossier\" & "Liste {0}.pdf"
' Ouvrir la liste des sociétés
Set rst = CurrentDb.OpenRecordset("Requête société 1", dbOpenSnapshot)
' Parcourir toute la liste
While Not rst.EOF
' Le nom du fichier varie en fonction de la société
strFichierPDF = StringFormat(strFichier, _
Format(rst("Société"), ""), _
rst("Type"))
' Construire le filtre
strFiltre = "[Société] = '" & rst("Société") & "'"
' Imprimer l'état en le filtrant sur la société
PrintAsPDF strFichierPDF, strEtat, strFiltre
' Société suivante
rst.MoveNext
Wend
' Terminé !
rst.Close
Set rst = Nothing
MsgBox "Opération terminée !", vbInformation
End Function
Partager