Microsoft 365 macro excel

  • Initiateur de la discussion Initiateur de la discussion naf naf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

naf naf

XLDnaute Nouveau
bonjour,
je souhaite insérer une pièce jointe pdf dans un mail déjà pré enregistrer au format oft .
J'ai écrit un bout de code ou il m'ouvre le fichier oft mais il me crée un autre mail pour m'insérer la pièce jointe .
Pouvez vous m'aider svp .

voici mon bout de code :

Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myItem = Outlook.Application.CreateItem(olMailItem)

Set myAttachments = myItem.Attachments
' lien hypertext pour ouverture de .oft
Range("M40").Select

' insertion pièce jointe
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
myAttachments.Add "c:\semainier- Version du 15-01-2021.pdf", _
olByValue, 1, "Semainier"
myItem.Display
 
Solution
Re

Donc cela fonctionnait en fait... 🙄
(C'est amusant...de perdre son temps pour des fautes d'inattention)

Et quid des "chaleureux remerciements" en cas de résolution de la question initiale?
😉

PS: Précisions
Oui , j'ai toujours en main mon crayon "humour/titillement/ironie et cie" pour rédiger ce message.
Mais tout cela sur un ton amical.
Re

Donc essaie cette variante
(et pour mininiser le risque d'erreur et puisqu'il s'agit de tes), renomme les fichiers exactement comme dans mon code)
VB:
Sub test_mail_avec_modele_II()
Dim Outlook_Mod$
Outlook_Mod = ThisWorkbook.Path & "\modele.oft" ' à adapter
    With CreateObject("Outlook.Application").CreateItemFromTemplate(Outlook_Mod)
        .To = "adressemail@domain.fr" ' à adapter
        .Subject = "Objet TEST" ' à adapter
        .Body = " Ceci est un test" ' à adapter
        .Attachments.Add ThisWorkbook.Path & "\fichier.txt"
        .Display
        '.Send
    End With
End Sub
 
Re

Une dernière suggestion
VB:
Sub test_mail_avec_modele_III()
Dim Outlook_Mod$
Outlook_Mod = ThisWorkbook.Path & "\modele.oft" ' à adapter
P_Jointe = Repertoire & "nomfichier.pdf" ' à adapter
    With CreateObject("Outlook.Application").CreateItemFromTemplate(Outlook_Mod)
        .To = "adressemail@domain.fr" ' à adapter
        .Subject = "Objet TEST" ' à adapter
        .Body = " Ceci est un test" ' à adapter
        .Attachments.Add (ThisWorkbook.Path & "\fichier.txt")
        .Display
        '.Send
    End With
End Sub
 
Re

Une dernière suggestion
VB:
Sub test_mail_avec_modele_III()
Dim Outlook_Mod$
Outlook_Mod = ThisWorkbook.Path & "\modele.oft" ' à adapter
P_Jointe = Repertoire & "nomfichier.pdf" ' à adapter
    With CreateObject("Outlook.Application").CreateItemFromTemplate(Outlook_Mod)
        .To = "adressemail@domain.fr" ' à adapter
        .Subject = "Objet TEST" ' à adapter
        .Body = " Ceci est un test" ' à adapter
        .Attachments.Add (ThisWorkbook.Path & "\fichier.txt")
        .Display
        '.Send
    End With
End Sub
j'ai essayé les 2 propositions et dans les 2cas c'est pareil ...
Je comprends pas pourquoi il bloque sur cette commande
 
Re

A mon niveau, je ne peux en dire plus.
Je n'ai pas Outlook ici.
Je pourrais tester lundi au boulot et je te redirai.

Une dernière vérification au cas où
Peux-poster une copie d'écran de ton explorateur Windows en étant dans le répertoire où sont les 3 fichiers.

Histoire d'être sur.
 
j'ai trouvé , c'est la variable outlook_Mod qui n'est pas réinitialiser est donc qui garde une vieille et fausse valeur.
En changeant outlook_Mod par Outlook_Mod1 cela fonctionne
Une idée pour réinitialiser les variables au depart du programme ?
 
Re

Donc cela fonctionnait en fait... 🙄
(C'est amusant...de perdre son temps pour des fautes d'inattention)

Et quid des "chaleureux remerciements" en cas de résolution de la question initiale?
😉

PS: Précisions
Oui , j'ai toujours en main mon crayon "humour/titillement/ironie et cie" pour rédiger ce message.
Mais tout cela sur un ton amical.
 
Re

Donc cela fonctionnait en fait... 🙄
(C'est amusant...de perdre son temps pour des fautes d'inattention)

Et quid des "chaleureux remerciements" en cas de résolution de la question initiale?
😉

PS: Précisions
Oui , j'ai toujours en main mon crayon "humour/titillement/ironie et cie" pour rédiger ce message.
Mais tout cela sur un ton amical.
Et oui un trés grand merci à toi pour ta patience, j'ai rajouté End à la fin du programme pour effacer les variables.
 
Re

Et donc si j'étais moi, voici ce que je ferais
NB: La 1ère macro est là juste pour identifier le chemin de tes modèles.
VB:
Sub test()
Off_Modeles = Application.TemplatesPath
MsgBox Off_Modeles
End Sub
Const PieceJointe As String = "monfichier.txt"
Sub test_V()
OutlookApp As Object, OutlookMail As Object, Outlook_Mod$
Outlook_Mod = Application.TemplatesPath & "modele.oft"
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItemFromTemplate(Outlook_Mod)
With OutlookMail
    .To = "staple1600@outtaspace.com"
    .Subject = "test"
    .Display
    .Attachments.Add (ThisWorkbook.Path & "\" & PieceJointe)
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
896
Retour