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 12/12/2011, 12h29   #1
 
Homme
Chargé d'affaire
Inscription : décembre 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Burkina Faso

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Finance

Informations forums :
Inscription : décembre 2011
Messages : 29
Points : -1
Points : -1
Par défaut Envoi d'un fichier pdf par mail

Bonjour à tous

Je cherche une macro qui me permettra d'envoyer un fichier PDF par mail.
Les envois seront régulier car je recoit des clients pour leur ouvrir des comptes. Donc un message devra être envoyé à chaque client dès l'ouverture de son compte.
A chaque fois que je cliquerez sur le racourci bouton, que le fichier word soit converti en pdf avant d'être envoyé.
Voici les differentes informations que vous aurez besoin certainement:
- j'utilise office 2007
- j'utilise outlook
- le nom de mon fichier est Bienvenu chez Benzoplus
- le fichier se trouve sur mon bureau
- l'objet de mon message = CLIENTS
Je reste disponible au cas ou vous aurez besoin de nouvelles informations
capi81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 12h38   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254
Salut,

Quel est le problème de l'envoyer via le bouton Office ?
__________________
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/12/2011, 13h45   #3
 
Homme
Chargé d'affaire
Inscription : décembre 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Burkina Faso

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Finance

Informations forums :
Inscription : décembre 2011
Messages : 29
Points : -1
Points : -1
C'est vrai ce que vous dite.
Vous expose la totalité du problème.
En effet, j'ai concu un outil excel qui permet de prendre en charge tous les info sur nos clients (notons que ce sont des clients qui viennent pour ouvrir un compte dans notre structure).
La direction a trouvé que mon outil (fichier excel avec macro) serait complet s'il nous permettrait d'envoyer des mails automatiquement à nos clients.
Nous recevons bcp de clients donc il serait bien si par simple clic d'un bouton macro on arrivait à tous faire ; c'est qui me motive.
Ca fait de cela 2 mois que je cherche à trouver des solutions sur mon problèmes mais jusqu'à present rien.
Pour la résolution du problème, je suis passé par les publipostages,
après cela, il fallait que j'arrive à automatiser l'envoi du mail aux clients.
Lorsque je pose la toalité du problème, je recois de réponse des forumers.
J'ai décidé de decomposer mon problème en sous problème espérant que je trouverez de réponse.
Je sais pas si vous me comprenez bien sinon n'hésitez pas à me revenir pour de plus amples éclaircissement.
capi81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 13h57   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254
Salut,

Et tu as quoi pour l'instant et tu coinces où dans ton développement ?
__________________
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/12/2011, 16h55   #5
 
Homme
Chargé d'affaire
Inscription : décembre 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Burkina Faso

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Finance

Informations forums :
Inscription : décembre 2011
Messages : 29
Points : -1
Points : -1
Pour le moment, j'ai ma source de données excel à partir de laquelle le publipostage devra être réalisé. J'arrive à faire le publipostage manuellement.
Mais je dois arriver à automatiser le publipostage également.
Le problème est que les différents utilisataires ne s'y connaissent pas trop en bureautique (excel, word etc). Voila pourquoi je cherche à leur faciliter les choses. Que sur la base de simple clic bouton (macro) ils arrivent à tout réaliser. Et cela ne peut être possible que sur la base d'une programmation.
Sincèrtement, ce que j'ai c'est l'idée de ce que je veux mais en réalité je m'y connais pas trop en programmation.
Une fois le publipostage réalisé, le fichier devra être converti en fichier pdf pour être ensuite envoyé par mail à l'adresse mail du client qui se trouve dans une des cellules de mon fichier excel.
En resumé, je dois arriver à:
- automatiser le publipostage sur la base de mes données sources,
- le fichier du publipostage devra être converti en fichier PDF,
- le fichier PDF devra être envoyé par mail à l'adresse du client.
La macro à réaliser devra permettre de prendre en compte les 3 points ci-dessus cité.
Donc à chaque fois qu'un agent (utilisateur du fichier) fini d'ouvrir un compte à un client et qu'il clic sur le bouton de la macro, le mail doit être envoyé au client.
capi81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 19h12   #6
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 597
Points : 1 597
Envoyer un message via MSN à carden752
Bonjour,

Reprenons chaque point dans l'ordre.
Pour la partie publipostage, tu peux regarder ce tutoriel d'Heureux-Oli.
Publipostage en VBA

Pour la partie conversion en pdf, tu peux t'inspirer de ce tutoriel
conversion PDF

et pour l'envoi de mail, tu peux piloter Outlook depuis Word mais on verra le moment venu.
Déjà, cela te fais pas mal de lecture
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2011, 01h14   #7
 
Homme
Chargé d'affaire
Inscription : décembre 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Burkina Faso

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Finance

Informations forums :
Inscription : décembre 2011
Messages : 29
Points : -1
Points : -1
Merci à Heureux-oli et Carden752 pour les pistes proposées.
Suis content d'avoir trouvé des bonnes volontés qui s'interessent à ma préoccupation.
Je viens vers vous après avoir parcouru les liens que vous m'avez conseillés.
Voici le 1er code pour réaliser le publipostage que j'ai pu faire en attendant que vous m'aidez à le perfectionner.
Code :
1
2
3
4
5
6
Sub DocAjoutSource()
ActiveDocument.MailMerge.OpenDataSource Name:="C:\Users\BENZOPLUS\Desktop\publu zz+.xls"
ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldMergeField, Text:="""F3"""
ActiveDocument.Fields.Add Range:=Selection.Range, Type:=wdFieldMergeField, Text:="""F5"""
ActiveDocument.MailMerge.Execute
End Sub
Lorsque je demande d'exécuter la macro, une boîte de dialogue s'affiche et me demande de selectionner le tableau. La source donnée se trouve dans la feuil1 de mon fichier excel. N'est-il pas possible quelle soit directement sélectionnée (par defaut)?
Le 2è soucis est la gestion des positions des élements de la fusion.
Avec excel, il suffit de définir la cellule par sa référence et le résultat sera affiché à cet endroit.
Avec word comment cela se pace?

Pour la convertion du document en PDF, voici le code que j'ai utilisé (toujours avec les liens que vous m'avez donnés):
Je sais pas ou se trouve l'erreur mais y'a débogage.
Pouvez-vous voire ou ca coince pour moi?
N.B: le fichier qu je veux que ca convertisse en pdf s'intitule :publipostage2 et se trouve sur le bureau.
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
33
34
35
36
37
38
39
40
41
Sub testPrintPDF()
Dim oldPrinter As String
Dim stChemin As String
Dim stNom As String
' Affichage de la fenêtre de PDF
Shell "C:\Program Files\PDFCreator\PDFCreator.exe", vbNormalFocus
 
Dim PDFCreator1 As New clsPDFCreator
oldPrinter = ActivePrinter	
'On va mettre en mémoire dans une 
'variable le nom de l'imprimante par défaut
ActivePrinter = "PDFCreator"
'Mettre comme imprimante par défaut PDFCreator
If Len(ActiveDocument.Path) = 0 Then
    stChemin = "c:\temp"
Else
    stChemin = ActiveDocument.Path
End If
'Si le document n'a pas été sauvegardé, le PDF sera dans le répertoire c:\temp
'et un nom par défaut documentPDF;pdf
If Len(ActiveDocument.Name) = 0 Then
    stNom = "documentPDF.pdf"
Else
    stNom = ActiveDocument.Name
End If
'les option PDFCreator
With PDFCreator1
   .cOption("UseAutosave") = 1
   .cOption("UseAutosaveDirectory") = 1
   .cOption("AutosaveDirectory") = stChemin
   .cOption("AutosaveFilename") = stNom
   .cOption("AutosaveFormat") = 0                            ' 0 = PDF
   .cStart
   .cClearCache
End With
ActiveDocument.PrintOut Background:=True
PDFCreator1.cClose
ActivePrinter = oldPrinter
' Change l'imprimante par défaut
 
End Sub
Je m'y connais pas trop en vba mais votre soutien me motive et je compte y arriver car j'ai tenu promesse devant mes responsables.
capi81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 00h03   #8
 
Homme
Chargé d'affaire
Inscription : décembre 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Burkina Faso

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Finance

Informations forums :
Inscription : décembre 2011
Messages : 29
Points : -1
Points : -1
Salut cher forumer

je compte sur votre diligeance pour donner une suite favoravle à ma requette.
Je reste disponilbe au cas ou vous aurez besoin de plus amples informations pour solutionner mes difficultés.
Meilleures salutations
capi81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 08h00   #9
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254
Salut,

Où coinces-tu dans ton développement ?

Sur ton dernier message, c'est simplement un copier coller d'un code fourni dans un tuto que tu nous donnes.

Mais en rien tu nous dis où ça coince.

Citation:
Je sais pas ou se trouve l'erreur mais y'a débogage.
Pouvez-vous voire ou ca coince pour moi?
pas de message d'erreur ?
Qu'est-ce qui coince ?
__________________
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 15/12/2011, 23h46   #10
 
Homme
Chargé d'affaire
Inscription : décembre 2011
Messages : 29
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Burkina Faso

Informations professionnelles :
Activité : Chargé d'affaire
Secteur : Finance

Informations forums :
Inscription : décembre 2011
Messages : 29
Points : -1
Points : -1
Bonsoir Heureux-oli

Merci pour le feedback.
Je pense avoir bien dit que je m'y connais pas trop bien en langage vba.
J'ai posé un problème dans l'intention que celui qui me comprend essai de traduire ce que je veux dans le langage vba. Si mon sujet n'est pas trop claire, je reste disponible pour apporter des éclaircissements.
Mon problème est que je n'arrive pas à adapter vos code pour qu'ils fonctionne chez moi.
Dans mon 1er code, je crois avoir fais ressortir mes difficultés.
Dans le 2è code, je n'arrive pas à adapter les chemins d'accès de mes fichiers à ceux du code. Qu'est ce que je dois changer dans le 2è code pourque quand je le colle par ALT+F11 dans un fichier et que je lance l'exécution, que le résultat attendu se produise?
Bonne compréhension
capi81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 08h43   #11
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 343
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 343
Points : 29 254
Points : 29 254
Salut,

Pour le premier problème, il suffit au lieu d'utiliser un document vierge, d'utiliser un modèle qui sera document principal de fusion, ce document garde en mémoire toutes les information sur le publipostage.

Que tu sois débutant en VBA ne pose pas de problème, mais quand un code ne fonctionne pas, on reçoit en général un message sur ce qui n'a pas fonctionné.

Le second code fonctionne quel que soit le chemin utilisé.
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h32.


 
 
 
 
Partenaires

Hébergement Web