Microsoft 365 macro excel

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... :rolleyes:
(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.

Staple1600

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

naf naf

XLDnaute Nouveau
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
 

Staple1600

XLDnaute Barbatruc
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.
 

naf naf

XLDnaute Nouveau
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 ?
 

Staple1600

XLDnaute Barbatruc
Re

Donc cela fonctionnait en fait... :rolleyes:
(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.
 

naf naf

XLDnaute Nouveau
Re

Donc cela fonctionnait en fait... :rolleyes:
(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.
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
3
Affichages
697

Statistiques des forums

Discussions
312 115
Messages
2 085 453
Membres
102 890
dernier inscrit
selkis