XL 2021 Copie de certaines données Excel sur Word

Mathos

XLDnaute Nouveau
Bonjour,
Je voulais déjà commencer par remercier ceux qui m'ont aidé sur ma précédente demande, cela m'a permis de découvrir certaines fonctionnalités d'excel que je ne connaissais pas.
J'aurais une autre question, je ne sais pas si c'est possible, mais y a-t'il moyen de lier certaines cellules excel à certaines zones de texte d'un fichier word.
Concrètement, je souhaiterais ajouter une case facture sur la ligne excel d'une personne et que ça me génère automatiquement une facture pour cette personne en reprenant son nom, prénom, montant de sa cotisation, le tout dans un squelette word déjà créé.
Ex : Veuillez trouver une facture concernant l’inscription de Mme (nom/prénom repris sur excel) aux cours de (repris sur excel) pour un montant de (repris sur excel).
Grâce à cette aide j'ai déjà de quoi créer le fichier doc, mais je voudrais en plus que ça le remplisse automatiquement : https://excel-downloads.com/threads/creation-de-document-word-via-excel.20079919/

D'avance merci pour vos réponses
 
Dernière édition:

Mathos

XLDnaute Nouveau
Merci Phil, je vais regarder, et je vais essayer de prendre en compte les remarques et conseils de Chris pour le refaire entièrement, tout en le gardant "esthétiquement et au niveau des fonctions" comme il est actuellement mais de manière plus propre et simple :) (Je n'ai vraiment commencé excel que depuis avril). Je vous tiens au courant. Merci
 

Mathos

XLDnaute Nouveau
@Phil69970 ta proposition me convient parfaitement, @chris je vais essayer de refaire ma base en prenant en compte tes remarques, par contre je n'ai pas trouvé comment générer la facture. La génération d'une ligne sur deux coloré est super, je ne connaissais pas du tout, je vais étudier les tableaux structurés :)
Je regarderais vos 2 propositions plus en profondeur ce week-end. Encore grand merci à vous
 

job75

XLDnaute Barbatruc
Bonjour Mathos, le forum,

Voici une solution utilisant 4 signets Word.

Téléchargez les fichiers joints dans le même dossier (le bureau) et exécutez cette macro :
VB:
Sub Factures()
Dim t#, plage As Range, saison$, chemin1$, chemin2$, nomDoc$, Wapp As Object, i&, n&, Doc As Object, nom$, total#
t = Timer
Set plage = Sheets("Compta").[A1].CurrentRegion
saison = plage(1)
chemin1 = ThisWorkbook.Path & "\"
chemin2 = chemin1 & "FACTURES " & saison & "\"
If Dir(chemin2, vbDirectory) = "" Then MkDir chemin2 'crée le sous-dossier
nomDoc = "Modèle de facture adhérents.doc" 'nom adaptable
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
On Error GoTo 0
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
With Sheets("Licences").[A1].CurrentRegion
    For i = 2 To .Rows.Count
        If Trim(.Cells(i, 3)) <> "" Then
            n = n + 1
            Set Doc = Wapp.Documents.Open(chemin1 & nomDoc) 'ouvre le document Word
            nom = .Cells(i, 3) & " " & .Cells(i, 4)
            Doc.Bookmarks("SG1").Range = IIf(.Cells(i, 5) = "M", "Monsieur ", IIf(.Cells(i, 5) = "F", "Madame ", "")) & nom
            Doc.Bookmarks("SG2").Range = .Cells(i, 2)
            total = Application.SumIfs(plage.Columns(28), plage.Columns(1), .Cells(i, 3), plage.Columns(2), .Cells(i, 4)) 'SOMME.SI.ENS
            Doc.Bookmarks("SG3").Range = Format(total, "#,##0.00 €")
            Doc.Bookmarks("SG4").Range = NbToLettresFSB(CStr(total), "euro")
            Doc.SaveAs chemin2 & nom & " " & saison & ".doc" 'enregistrement
            Doc.Close 'ferme le document word
        End If
    Next i
End With
If Wapp.Documents.Count = 0 Then Wapp.Quit 'ferme Word
MsgBox n & IIf(n < 2, " facture éditée", " factures éditées") & " en " & Format(Timer - t, "0.00 \sec"), , saison
End Sub
Les documents Word édités sont dans les sous-dossier FACTURES SAISON 2024 - 2025.

Testée avec 99 noms la macro s'exécute chez moi en 22 secondes.

La conversion des chiffres en lettres est faite par la macro NbToLettresFSB de patricktoulon éditée dans les Ressources du forum.

A+
 

Pièces jointes

  • Tableau pour les inscriptions Compta et Effectifs.xlsm
    97.4 KB · Affichages: 3
  • Modèle de facture adhérents.doc
    30.5 KB · Affichages: 4

chris

XLDnaute Barbatruc
Bonjour

Pas besoin de VBA pour effectuer un publipostage Word. Heureusement !
Pourquoi réinventer l'eau tiède...

Il suffit d'ouvrir le Word que j'ai posté, de confirmer le chemin et nom du fichier source de données (l'excel que j'ai posté avec le montant et sans lignes superfétatoires)

Il n'y a plus qu'à lancer la fusion (un clic), soit directement sur l'imprimante, soit dans un document Word que l'on peut vérifier avant impression.
 

Mathos

XLDnaute Nouveau
Bonjour

Pas besoin de VBA pour effectuer un publipostage Word. Heureusement !
Pourquoi réinventer l'eau tiède...

Il suffit d'ouvrir le Word que j'ai posté, de confirmer le chemin et nom du fichier source de données (l'excel que j'ai posté avec le montant et sans lignes superfétatoires)

Il n'y a plus qu'à lancer la fusion (un clic), soit directement sur l'imprimante, soit dans un document Word que l'on peut vérifier avant impression.
Je ne comprenais pas comment faire les factures 😅 Merci beaucoup, les 3 solutions fonctionnent parfaitement, dur de choisir...
 

Mathos

XLDnaute Nouveau
Pour l'instant je m'attelle à essayer de rendre mon fichier propre en essayant de suivre les conseils de Chris (pas forcément évident, mais j'essaye) et après je m'attellerai à la facturation :). J'avoue que pour l'instant la solution de Chris est la plus simple pour moi, mais je verrais tout ça une fois mon fichier propre.
 

Discussions similaires

Statistiques des forums

Discussions
314 201
Messages
2 107 139
Membres
109 757
dernier inscrit
juju790