Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 21h01   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Par défaut publipostage particulier excel vers word

bonjour a tous,
ce qu'il me faudrait c'est une macro qui me permette d'effectuer directement un publipostage d'excel vers word.
C'est a dire, que pour le moment j'ai un fichier excel et lorsque j'ai besoin de faire un publipostage, je dois :
-remplir les cases de mon classeur
-puis aller dans word (la, j'ai creer un lien hypertexte)
-faire outils=>pulbipostage=>fusion et publipostage
-a l'etape n°3, rechercher mon fichier excel (celui que je viens de remplir)
-puis aller jusqu'a l'etape n°6 pour que la fusion se fasse


et j'aimerais savoir sil il est possible de juste faire:

-remplir les cases de mon classeur excel
-appuyer sur un bouton associé a une macro qui va ouvrir word et effectuer les etapes du publipostage directement en utilisant les données du fichier excel que je viens de remplir.

est ce possible ?

merci bien !
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 21h53   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

Oui !
C'est possible.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 21h58   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
merci! c'est tres gentil de m'avoir repondu, et comment pourrais je proceder ? un code a me donner ? que ça soit sur word ou excel ?!
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 23h06   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

Un code, certainement, mais sans autre explications, il y a de fortes chance que le code ne fonctionnera pas correctement.

une solution serait pour chaque cellule son contenu soit envoyé sur un signet du document Word.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 07h25   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
merci de ta réponse, tu pourrais développer ton idée de code stp ?
et par signet qu'entends tu ? je ne sais pas ce que tu veux dire par là, ni comment ça marche.
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 07h34   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

Un signet est un repère dans un document.
Suivant les version, c'est dans le menu Insertion ou dans l'onglet du même nom.
On insère le signet à l'emplacement de la souris.

On atteint un signet en VBA avec :

Code :
ActiveDocument.Bookmarks("Monsignet").Range.texte
On insère le contenu d'une cellule par

Code :
ActiveDocument.Bookmarks("Monsignet").Range.texte = Range(R1C1;R1C1)
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 07h39   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
ok je vais essayer ca,
et donc je pourrais faire un signet par rapport a mon fichier excel en cours et ca pourrait se faire tt seul ou il faudra rajouter une macro pour dire au fichier word qu'il peut prendre les infos du fichier excel ouvert ?
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 19h13   #8
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
en fait, je me suis penché sur la questioon et j'ai bien regarder a quoi servait un signet et je ne vois pas en quoi ça va m'aider puisque ça ne va pas faire le publipostage directement!

merci de m'expliquer

ciaoooo
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 22h09   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

Si je comprend bien, tu souhaites juste faire un publipostage simple !

Pourquoi as-tu mis particulier dans le titre ?

Il suffit d'enregistrer ton document en tant que document principal de fusion.
Et quand on l'ouvre, on fait le publipostage.

http://heureuxoli.developpez.com/off.../publipostage/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 15h00   #10
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
j'ai mis "particulier" dans le titre du topic

car en fait j'ai un fichier word qui me sers a faire des lettres aux medecins et j'ai plusieurs fichiers excel avec le dossier patient.

Et je voudrais que lorsque j'ai finis de remplir mon fichier excel, je puisse avoir un bouton qui me permette directement de fusionner les données du fichier word pour ecrire au medecin avec les données du fichier excel que je viens d'ecrire.

Oui je peux utiliser le publipostage simple en faisant "outils, publipostage, fusion et publipostage" et ensuite aller chercher mon fichier excel,
mais je voudrais juste un bouton qui permette de faire la manoeuvre tout seul.

est ce possible ?

ps: ça serait un boutn qui premierement ouvre le fichier word et qui deuxiemement se fusionne automatiquement ac le fichier excel en cours
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 19h19   #11
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

Le but du publipostage est de pourvoir enregister toutes ces manipulations dans le fichier Word.

Normalement, le fichier ne doit être ajouté que la première fois, sauf si tu crées un nouveau fichier Excel à chaque fois.

Peux-tu nous expliquer en détail les étapes que tu réalises ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 20h27   #12
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
oui, voiila c'est ca mon probleme : c'est que j'ai un fichier excel toujours different donc je dois refaire le manip

pour le moment j'ai un fichier excel sur lequel j'ai mis un lien hypertexte vers mon fichier word, et je dois faire outils, publipostage, fusion et publipostage, je dois aller chercher le fichier excel que je viens de nouvellement creer et je clique sur "fusion"

c'est pas compliqué mais fastidieux, je voudrais juste pouvoir faire une macro excel qui lance une macro word qui fais la manip tout seul (publipostage et recherche du fichier excel en cours)
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2010, 22h33   #13
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

On en revient donc à ma proposition de Signets dans un document Word.

On crée un modèle où on place des signets au lieu de champs de publipostage.
Chaque signet recevra une données de la feuille Excel.
Et ce bout de code peut se trouver dans les macro personnelles d'Excel.

Le principe est simple, on crée un nouveau fichier basé sur ce modéle en cliquant sur un bouton.
Le fichier se crée et les données du fichier sont envoyées dans le document.
Le seul hic, c'est que la structure des données dans le fichier Excel doivent troujours se trouver au même endroit.
Ex : on choisit une colonne qui contiendra le nom, ce sera toujours la même qui contiendra le nom.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 11h43   #14
Invité de passage
 
Inscription : novembre 2010
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 8
Points : 0
Points : 0
Ok,on s'est trés bien compris alors! Super!
Comment dois je proceder alors? Parce que je ne m'y connais pas du tout dans les signets!que dois je faire ?

Ça me derange pas du tout d'avoir toutes les données toujours au même endroit sur ma feuille puisque c'est déjà le cas (feuil 3 tout est listé sur une ligne !)

Merci bcp en tt cas de prendre du temps pr me repondre!
mizouille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 18h23   #15
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

La première étape est la déclaration de la bibliothèque Word dans le projet Excel.

Outils
Références
Choisir Microsoft Word XX.X dans la liste.

Ensuite dans le code, on va utilser cette bibliothèque.

Avant d'écrire le code, il faut préparer le modèle de document, chaque endroit qui va recevoir des données recevra un signet.
Le nom des signet doit être évocateur de la données qu'il va recevoir.
Par exemple le nom ira sur le signet nom.

Dans le classeur des macros personnelles d'Excel, on écrit ce code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
'Déclaration des variables
Dim wApp As Word.Application
Dim oDoc As Word.Document
'Affectation des données aux variables
Set wApp = New Word.Application
Set oDoc = wApp.Documents.Add("Le chemin du modèle")
'Affectation des données Excel aux signets
oDoc.Bookmarks("nom").Range.Text = ActiveWorkbook.ActiveSheet.Range("A1")
...
Et ce pour tous les signets
...
'Rendre Word Visible
wApp.Visible = True
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2012, 17h00   #16
Nouveau Membre du Club
 
Avatar de dany13
 
Inscription : mai 2004
Messages : 100
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 100
Points : 35
Points : 35
Bonjour,

je me permets de "m'incruster" dans la conversation car elle correspond tout à fait à ce que je veux!!! \o/

Heureux-oli, j'ai la même problématique que mizouille et tout fonctionne bien quand je n'ai qu'une ligne dans mon tableau excel.
- j'ai bien défini une document word avec mes signets
- j'ai créer une macro associé à un bouton dans excel qui me permet de remplir mes signets word avec les données d'excel.

Ma question :
Si j'ai plus d'une ligne dans mon tableau excel, par exemple 5 lignes, j'aimerai retrouver dans mon fichier word, après avoir cliquer sur le bouton de génération du doc word, 5 pages. Est ce possible? Si oui, comment?? MERCI
__________________
Carpe Diem : Profitez du moment présent
La connaissance non partagée n'a pas vraiment son utilité
dany13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2012, 20h00   #17
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 302
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 302
Points : 29 039
Points : 29 039
Salut,

Il faut adresser les cinq lignes.
Juste que si tu fais une boucle, tu vas devoir incrémenter ta boucle de 5 lignes en 5 lignes.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2012, 08h57   #18
Nouveau Membre du Club
 
Avatar de dany13
 
Inscription : mai 2004
Messages : 100
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 100
Points : 35
Points : 35
Bonjour bonjour !

Merci Heureux-oli pour ta réponse, j'ai pu faire quelque chose qui fonctionne \o/

Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub GenereMonDocWord_Cliquer()
'***
'Déclaration des variables
Dim wApp As Word.Application
Dim oDoc As Word.Document
Dim NbLigne As Integer
 
'Récupération du nombre de lignes et de colonnes
Dim xlWb As Excel.Workbook
Dim xlSh As Excel.Worksheet
Dim iR As Integer
 
'Affectation des données aux variables
Set wApp = New Word.Application
Set xlSh = ActiveWorkbook.ActiveSheet
 
NbLigne = Application.WorksheetFunction.CountA(Columns(1)) - 2
Debug.Print NbLigne
 
For iR = 7 To NbLigne
    Set oDoc = wApp.Documents.Add(ThisWorkbook.Path & "\" & "MonModeleWord.doc")
    'Affectation des données Excel aux signets
    oDoc.Bookmarks("Signet_1").Range.Text = ActiveWorkbook.ActiveSheet.Range("H2")
    oDoc.Bookmarks("Signet_2").Range.Text = ActiveWorkbook.ActiveSheet.Range("G2")
    oDoc.Bookmarks("Signet_3").Range.Text = "ENREGISTREMENT " & iR
    oDoc.Bookmarks("Signet_4").Range.Text = "Page " & iR
    oDoc.SaveAs (ThisWorkbook.Path & "\" & "MonCourrier_N_" & iR & ".doc")
    oDoc.Close
    Set oDoc = Nothing
Next iR
 
End Sub
Cependant, au lieu de créér autant de documentWord que de ligne, je souhaiterai avoir qu'1 seul doc word avec plusieurs pages correspondant au nombre de lignes de mon fichier excel.

Comment puis je proceder? un exemple, un morceau de code pour me mettre sur la voie?
Merci par avance
__________________
Carpe Diem : Profitez du moment présent
La connaissance non partagée n'a pas vraiment son utilité
dany13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2012, 15h10   #19
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 759
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 759
Points : 16 792
Points : 16 792
Envoyer un message via Skype™ à bbil
bonjour,

déjà si tu ne veux pas une sauvegarde par ligne sort ton instruction "..saveas" de ta boucle FOR...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2012, 03h29   #20
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 680
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 680
Points : 3 570
Points : 3 570
Salut, il y a dans tous les cas un tuto à consulter
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h45.


 
 
 
 
Partenaires

Hébergement Web