Aide et conseils sur Excel pour fabriquer un outil pour extraire des donnée

bonjour

j'utilise excel (version 2013 package office MOFPE ) pour une association j'ai besoin de faire parvenir aux membres un document avec un texte standard mais en le personnalisant genre publipostage (avec nom prénom adresse n°adh etc...) les infos sont dans un classeur excel et je souhaite pouvoir éditer pour chaque membre un document avec leurs infos personnelles sous word et ensuite leur envoyer soit par mail soit par la poste.

je ne sais pas faire de macro ni de VBA c'est bien là mon problème.

le classeur excel où sont les données a cette forme je souhaite pouvoir récupérer les données des colonnes pour les insérer dans les champs à renseigner d'un document à créer et à enregistrer pour chaque adhérent

test image

merci de vos conseils

Phil

Bonjour philphil,
Avez-vous regardé cette vidéo qui propose de faire du publipostage avec Excel sans passer par Word?
https://www.youtube.com/watch?v=qiRDGerT58E

Bonjour fcyspm30

merci de votre réponse je suis en train de regarder et ensuite de faire un essai



encore merci

Philippe alias philphil

Bonjour

Aprés avoir suivi les instructions sur youtube

j'ai lancé l’exécution du code suivant

Sub publipostage()

Dim classeurOrigine As String, classeurPublipostage As String

classeurOrigine = ActiveWorkbook.Name

Workbooks.Add
classeurPublipostage = ActiveWorkbook.Name

[a1] = "Publipostage automatique réalisé le " & Format(Now(), "dd/mm/yyyy")

Windows(classeurOrigine).Activate

Dim table As Range
Set table = [a2].CurrentRegion

Dim ligne As Integer, colonne As Integer

For ligne = 2 To table.Rows.Count
Dim enregistrements As String
enregistrements = ""

For colonne = 1 To table.Columns.Count
enregistrements = enregistrements & table(1, colonne) & ";" & table(ligne, colonne) & "!"
Next

ActiveSheet.Shapes(1).Copy
Application.Wait Now + TimeValue("00:00:01")

Windows(classeurPublipostage).Activate

Sheets.Add after:=ActiveSheet

ActiveSheet.Paste

Dim enregistrement As Variant, nouveauTexte As String


For Each enregistrement In Split(enregistrements, "!")
Dim titre As String, cellule As String

If enregistrement <> "" Then

titre = Split(enregistrement, ";")(0)
cellule = Split(enregistrement, ";")(1)

nouveauTexte = ActiveSheet.Shapes(1).TexteFrame.Characters.Text
nouveauTexte = Replace(nouveauTexte, "[" & titre & "]", cellule)
ActiveSheet.Shapes(1).TexteFrame.Characters.Text = nouveauTexte
End If
Next

Windows(classeurOrigine).Activate



Next

End Sub

1er problème

j'ai eu une erreur 438 ligne 46 col 48

nouveauTexte = ActiveSheet.Shapes(1).TexteFrame.Characters.Text

nouveauTexte = Replace(nouveauTexte, "[" & titre & "]", cellule)

ActiveSheet.Shapes(1).TexteFrame.Characters.Text = nouveauTexte

End If Next Windows(classeurOrigine).Activate Next

End Sub

comment le résoudre ?

2eme problème

lorsque la macro s'exécute aucun des champs prévus nom prénom etc... 8 au total n'est rempli dans le classeur crée
et je n'ai qu'un seul classeur crée en plus de celui qui date le publipostage alors que mon fichier sur lequel doit s'appliquer la macro comporte 190 lignes et donc 190 classeurs différents avec les infos personnelles de chaque personne

.j'ai aussi une question le fichier origine contient 8 colonnes indispensable dans le classeur origine mais qui ne sont pas à traiter par la macro publipostage

ADHDJactionDATENOMPRENOMADRESSECPVILLEN° TELADRESSE MAILPCOTDONTOTALLETTRE

est ce que cela peut generer des erreurs ?

merci de vos aides et commentaires

bien cordialement
Phil

Rechercher des sujets similaires à "aide conseils fabriquer outil extraire donnee"