OVH Cloud OVH Cloud

Macro Visual Basic sous Word

2 réponses
Avatar
Pascal Bailleul
J'ai un fichier excel avec 1000 vendeurs (1000 lignes) avec 30 colonnes par
vendeurs (ses résultats).Ces vendeurs sont dirigés par 50 responsables
Je veux faire un fichier word par responsable qui contient une page par
vendeur dont il est chargé(ex: responsable 1 a 45 vendeurs à gérer il aura
un document word avec 45 pages chacune personnalisée par vendeur).

Pour personnaliser les documents word je fais un publipostage.

Ensuite je veux transmettre directement par messagerie e-mail le document
créé sous word à chaque responsable.

J'ai fait une macro visual basic sous word que je n'arrive pas à finaliser,
elle fonctionne de façon bricolée car je fait deux boucles une par
responsable la seconde par adresse e-mail, j'ai écrit en dur dans la macro
le nom des responsables et les adresses e-mail ce qui n'est pas satisfaisant
puisque j'ai ces informations dans 2 colonnes de mon fichier excel.

Question : comment récupérer le contenu d'une cellule excel dans une macro
faite sous word, à chaque nom de responsable je veux créer un fichier *.doc
et à chaque adresse e-mail je veux envoyer ce *.doc.

Merci pour votre aide et si vous avez des exemples merci de m'envoyer une
copie

2 réponses

Avatar
Clément Marcotte
http://groups.google.com/groups?q=plusieurs+fichiers+fusion+OR+publipostage+group:microsoft.public.fr.word&hl=fr&lr=&c2coff=1&selm=eGRjEXtwCHA.1628%40TK2MSFTNGP10&rnum=3


"Pascal Bailleul" a écrit dans le
message de news:%
J'ai un fichier excel avec 1000 vendeurs (1000 lignes) avec 30
colonnes par

vendeurs (ses résultats).Ces vendeurs sont dirigés par 50
responsables

Je veux faire un fichier word par responsable qui contient une page
par

vendeur dont il est chargé(ex: responsable 1 a 45 vendeurs à gérer
il aura

un document word avec 45 pages chacune personnalisée par vendeur).

Pour personnaliser les documents word je fais un publipostage.

Ensuite je veux transmettre directement par messagerie e-mail le
document

créé sous word à chaque responsable.

J'ai fait une macro visual basic sous word que je n'arrive pas à
finaliser,

elle fonctionne de façon bricolée car je fait deux boucles une par
responsable la seconde par adresse e-mail, j'ai écrit en dur dans la
macro

le nom des responsables et les adresses e-mail ce qui n'est pas
satisfaisant

puisque j'ai ces informations dans 2 colonnes de mon fichier excel.

Question : comment récupérer le contenu d'une cellule excel dans une
macro

faite sous word, à chaque nom de responsable je veux créer un
fichier *.doc

et à chaque adresse e-mail je veux envoyer ce *.doc.

Merci pour votre aide et si vous avez des exemples merci de
m'envoyer une

copie





Avatar
Clément Marcotte
Question : comment récupérer le contenu d'une cellule excel dans une
macro

faite sous word


Sub récupérerunecelluledexcel()
Dim xlapp As Object, donneerecuperee As String
Dim leclasseur As Object
'Créer une nouvelle instance d'Excel
Set xlapp = CreateObject("Excel.application")
'Créer un objet "Workbooks" du nom de leclasseur
'Pour désigner le classeur à utiliser
Set leclasseur = xlapp.workbooks.Open("c:mes documentsletest.xls")
'Affecter à la variable donneerecuperee
'la valeur de la cellule a1 de leclasseur
donneerecuperee = leclasseur.sheets("Feuil1").Range("A1").Value
'Afficher la réponse
MsgBox donneerecuperee
'Fermer Excel
xlapp.Quit
Set xlapp = Nothing
Set leclasseur = Nothing
End Sub

Sub récupéreruneplagedexcel()
Dim xlapp As Object, donneerecuperee(1 To 5) As String
Dim leclasseur As Object, i As Integer
'Créer une nouvelle instance d'Excel
Set xlapp = CreateObject("Excel.application")
'Créer un objet "Workbooks" du nom de leclasseur
'Pour désigner le classeur à utiliser
Set leclasseur = xlapp.workbooks.Open("c:mes documentsletest.xls")
'Affecter à un tableau VBA
'les valeurs de la plage "a1:a5" de leclasseur
For i = 1 To 5
donneerecuperee(i) = leclasseur.sheets("Feuil1").Cells(1, i).Value
Next
'Afficher la réponse
For i = 1 To 5
MsgBox donneerecuperee(i)
Next
'Fermer Excel et libérer les variables objets
xlapp.Quit
Set xlapp = Nothing
Set leclasseur = Nothing
End Sub