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 ?
 

job75

XLDnaute Barbatruc
Editer des factures est très classique, faites une recherche sur ce forum et si vous ne trouvez pas déposez ici votre fichier.
 

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
 

job75

XLDnaute Barbatruc
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.
 

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
 

Fichiers joints

Laurent78

XLDnaute Occasionnel
Bonjour,
Personnellement, je ferais un simple publipostage avec word (et la base de données en Excel); du coup, aucune macro, un truc qui fonctionne parfaitement et simple à mettre en oeuvre.
Cdlt
Laurent
 

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...
 

Fichiers joints

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 ?
 

Haut Bas