XL 2019 Générer 400 rapports grâce à une base de donnée ?

salesforce-bro

XLDnaute Nouveau
Bonjour tout lemonde,

J'ai une base de donnée contenant 400 enregistrements sur Excel et je souhaiterai générer une facture pour chacun de ces enregistrements sans avoir à le répéter 400 fois.

Comment peut on faire ?

Merci
 

salesforce-bro

XLDnaute Nouveau
Bonjour salesforce-bro, bienvenue sur XLD,

Qu'est-ce à dire ? Si vous ne répétez qu'une fois vous n'aurez qu'une facture ! Une boucle répétée 400 fois est donc nécessaire.

A+
Bonjour salesforce-bro, bienvenue sur XLD,

Qu'est-ce à dire ? Si vous ne répétez qu'une fois vous n'aurez qu'une facture ! Une boucle répétée 400 fois est donc nécessaire.

A+
Oui mais comment le faire ?
 

salesforce-bro

XLDnaute Nouveau
Editer des factures est très classique, faites une recherche sur ce forum et si vous ne trouvez pas déposez ici votre fichier.
Ben je trouve pas j'ai déja chercher j'ai du m'inscrire sur le forum pour poster ma demande.
On va dire j'ai 400 enregistrements avec des colonnes pour (Nom Prenom Numero de commande Date de commande Montant...) Je veux créer en quelques clics d'un coup 400 fichiers factures
 

salesforce-bro

XLDnaute Nouveau
Dites donc, faudrait bosser un peu non ?

Il faut joindre votre fichier avec la base de données et une feuille modèle de facture.

Et nous dire quels noms vous voulez donner aux fichiers créés.

Lol d'accord mais comment ? vous n'avez pas une vidéo/discussion qui va dans ce sens ? Le fichier exemple est ci joint, feuille 1 = Nom et prénoms, Feuille 2 = Attestation de participation Template
Mon but est de créer pour chaque personne un rapport PDF qui atteste de sa participation
 

Pièces jointes

  • how howww.xlsx
    44.6 KB · Affichages: 11

job75

XLDnaute Barbatruc
Oui le publipostage ou sinon cette macro pas bien compliquée :
VB:
Sub Attestations()
Dim t#, chemin, i&, nom$, prenom$
t = Timer
chemin = ThisWorkbook.Path & "\Attestations\"
If Dir(chemin, vbDirectory) = "" Then MkDir chemin 'création du sous-dossier
With Feuil1.[A1].CurrentRegion
    For i = 2 To .Rows.Count
        nom = .Cells(i, 8)
        prenom = .Cells(i, 7)
        With Feuil2
            .Cells(8, 3) = nom
            .Cells(8, 4) = prenom
            .ExportAsFixedFormat xlTypePDF, chemin & nom & " " & prenom
        End With
    Next
End With
MsgBox i - 2 & " attestation(s) créée(s) en " & Format(Timer - t, "0.00 \s")
End Sub
Chez moi il faut 0,8 seconde pour créer un fichier PDF, le fichier joint en créera 449, faudra être patient...
 

Pièces jointes

  • how howww(1).xlsm
    50.7 KB · Affichages: 16

salesforce-bro

XLDnaute Nouveau
Oui le publipostage ou sinon cette macro pas bien compliquée :
VB:
Sub Attestations()
Dim t#, chemin, i&, nom$, prenom$
t = Timer
chemin = ThisWorkbook.Path & "\Attestations\"
If Dir(chemin, vbDirectory) = "" Then MkDir chemin 'création du sous-dossier
With Feuil1.[A1].CurrentRegion
    For i = 2 To .Rows.Count
        nom = .Cells(i, 8)
        prenom = .Cells(i, 7)
        With Feuil2
            .Cells(8, 3) = nom
            .Cells(8, 4) = prenom
            .ExportAsFixedFormat xlTypePDF, chemin & nom & " " & prenom
        End With
    Next
End With
MsgBox i - 2 & " attestation(s) créée(s) en " & Format(Timer - t, "0.00 \s")
End Sub
Chez moi il faut 0,8 seconde pour créer un fichier PDF, le fichier joint en créera 449, faudra être patient...
Et on peut envoyer un courrier automatique a chaque personne gr$ace au publipostage ?
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 799
Membres
101 818
dernier inscrit
tiftouf5757