IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

envoi mail comprenant images et liens hypertexte


Sujet :

VBA Access

  1. #1
    Membre du Club Avatar de ninon
    Femme Profil pro
    Programmeur
    Inscrit en
    Décembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Décembre 2004
    Messages : 68
    Points : 68
    Points
    68
    Par défaut envoi mail comprenant images et liens hypertexte
    Bonjour amis développeurs sur ACCESS

    Grâce à l'excellent tutoriel de Claude Leloup, je me lance dans la composition de lettres d'info, envoyées par mail depuis ACCESS.

    La newsletter, lettre.doc, est créée sous WORD par un membre de l'association : elle comporte des paragraphes, certains mots en gras ou soulignés, il peut y avoir des images, et surtout, il y a des liens hypertextes.

    J'arrive, dans un module vba, à ouvrir WORD, tester l'existence du fichier lettre.doc, l'ouvrir si elle est fermée, et récupérer le texte pour en faire le message de mon mail, qui est envoyé et réceptionné.

    LE PROBLÈME : pas de saut de paragraphe, police non prise en compte, ni les liens URL, etc...

    Une solution consiste à copier non pas le texte word, mais une conversion en HTML.

    Je peux le faire, en convertissant le document via un site externe, mais c'est une manipulation que mon utilisateur ne fera pas.

    Existe-t-il un moyen de le faire faire par vba : j'ai eu un espoir avec HTMLformat, mais cela ne marcherait que pour EXCEL ?

    Merci de l'intérêt que vous porterez à cette discussion

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Quelques liens ici, ou .
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Membre du Club Avatar de ninon
    Femme Profil pro
    Programmeur
    Inscrit en
    Décembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Décembre 2004
    Messages : 68
    Points : 68
    Points
    68
    Par défaut
    Les 3 liens sont intéressants, pour quelques améliorations ou pour la suite des opérations, mais je suis toujours bloquée par la question du format du corps de mon message, créé par un utilisateur qui ne connait que WORD.

    J'avais oublié de préciser, j’utilise outlook en vba pour l’envoi de mes messages.
    Voici le code que j’ai créé (sans les déclarations de variables qui existent par ailleurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
           ObjetMail = "test envoi mail"
           MessageMail = "Ceci est un test de mail envoyé à partir base ACCESS"
           docJoint = CurrentProject.path & "\ajoindre.pdf"
           MessageMail = "<HTML><BODY><div><img src='" & CurrentProject.path & "\monLogo.png'><div/><p>&nbsp;</p>"
           MessageMail = MessageMail & monText & "</BODY></HTML>"
     
           'Assigner l'objet Outlook
           Set objOutlook = New Outlook.Application
           Set MonMessage = objOutlook.CreateItem(0) 'ouvrir une structure de message
     
           With MonMessage
     
               .To = "personne1@orange.fr";"personne2@orange.fr";"personne3@orange.fr";"personne4@orange.fr";"personne5@orange.fr"
               .Subject = ObjetMail
     
               'Set body format to HTML
               .BodyFormat = olFormatHTML
               .HTMLBody = MessageMail
               .Display
               .Attachments.Add docJoint
     
           End With
     
           MonMessage.Send
     
    	   'Fermer Outlook
    	   objOutlook.Quit
    	   Set objOutlook = Nothing
    J’ai auparavant récupéré monTexte dans un document word, et c’est juste l’apparence de ce fichier word intégré dans le corps même du message, qui me préoccupe.

    L’idée de remplacer vbCrLf par "<br>" est intéressante, par exemple, mais cela ne règle pas tous les problèmes : liens vers URL externes, polices de toutes sorte …

    Je ne peux pas non plus enregistrer le HTML dans ma routine, je ne serai pas là pour les prochaines newsletters, et la personne chargée de les concevoir ne pourra pas le faire de son côté.

    La solution que j'ai trouvée, pour l'instant, passe par une conversion du document .docx en document .html, et cela fonctionne : monTexte est alors pourvu des balises HTML appropriées.

    Mais puis-je automatiser davantage le processus et me passer de cette étape qui va encombrer mon utilisateur ?

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Avant envoi par mail, vous pouvez ouvrir le document Word pour l'enregistrer sous format HTML, via ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim NomVotreFichier as String
    .ActiveDocument.SaveAs Filename:=NomVotreFichier, FileFormat:= _
    8, LockComments:=False, Password:="", AddToRecentFiles:=True, _
    WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
    SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
    False
    Il faut être sûr que la référence "Microsoft Word X.x Object Library" est activée.

  5. #5
    Membre du Club Avatar de ninon
    Femme Profil pro
    Programmeur
    Inscrit en
    Décembre 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Décembre 2004
    Messages : 68
    Points : 68
    Points
    68
    Par défaut
    Voilà un coup de pouce bien intéressant, je vais tester !

Discussions similaires

  1. [Dojo] image avec lien hypertexte
    Par tapoutapou dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 08/07/2010, 13h26
  2. [VxiR2] Image en Lien hypertexte sans bordure
    Par Poisson59 dans le forum Webi
    Réponses: 2
    Dernier message: 30/10/2009, 10h28
  3. Apparition d'image par lien hypertexte ou autre ?
    Par nath35 dans le forum Powerpoint
    Réponses: 3
    Dernier message: 31/08/2007, 10h37
  4. [VBA-E] Envoi d'un mail depuis Excel avec lien hypertexte
    Par SlySylvain dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/05/2007, 17h54
  5. Image et lien hypertext
    Par Tintou dans le forum IHM
    Réponses: 2
    Dernier message: 02/05/2007, 08h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo