Excel - VBA - Email Outlook/Mac

Misterbean1 Messages postés 53 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai une macro créée pour automatiser la préparation/envoi d'un Email + annexe via Outlook.
Je désire que la macro puisse également déterminer si un Mac est utilisé et faire en sorte que la macro puisse fonctionner sur Mac.
-> Cette Macro inclut la création d'un Email / d'un nouveau fichier xls / d'une image HTML qui sera collée dans le corps du mail.

Etant un grand novice en VBA, je vous remercie d'avance pour votre aide.

MB

5 réponses

  1. Misterbean1
     
    Merci F894009 mais je crains que mes compétences limitées en VBA perturbent ma compréhension.... Dois-je créer de nouveaux codes adapter au MAC ou bien dois-je adapter/ajouter dans mes codes d'envoi via Outlook (et pour lesquels vous m'avez super bien aidé ;) ).

    Pour être le plus concret possible, voici ci-dessous le code que j'utilise pour que l'utilisateur, en cliquant sur un bouton, envoi un Email + annexe et contenu dans le corps de l'Email sous Outlook. J'aimerais donc, qu'en cliquant sur le même bouton, un utilisateur MAC crée le même Email....

    d'avance merci pour une aide à ce sujet!!

    Le code en question (qui fonctionne nickel, tel quel, chez moi) pour Outlook :

    Sub Mail_Selection_Range_Ventes()

    Dim Rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String

    'Dim OutApp As Outlook.Application
    'Dim OutMail As Outlook.MailItem

    Set Rng = Nothing
    On Error Resume Next
    Set Rng = Sheets("Sheet1").Range("A1:B22")
    On Error GoTo 0

    If Rng Is Nothing Then
    MsgBox "The selection is not a range or the sheet is protected. " & _
    vbNewLine & "Please correct and try again.", vbOKOnly
    Exit Sub
    End If

    With Application
    .EnableEvents = False
    '.ScreenUpdating = False
    End With

    Set Sourcewb = ActiveWorkbook

    Set Destwb = Workbooks.Add
    'copy avec format
    Sourcewb.Sheets("Sheet1").Range("A1:B20").Copy Destwb.ActiveSheet.Range("A1").Resize(Rng.Rows.Count, Rng.Columns.Count)

    Destwb.ActiveSheet.Cells.EntireColumn.AutoFit
    Rng.Columns.Count) = Application.Transpose(Application.Transpose(Rng))
    'Save the new workbook/Mail
    TempFilePath = Environ$("temp") & "\"
    TempFileName = "Document_" & ActiveSheet.Range("B4") & "__" & ActiveSheet.Range("B7") & "__" & Format(Now, "dd-mmm-yy")
    FileExtStr = ".xlsx": FileFormatNum = 51
    With Destwb
    .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
    .Close SaveChanges:=False
    End With

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
    .To = Worksheets("Sheet1").Range("E1").Value
    .CC = Worksheets("Sheet1").Range("E2").Value & ";" & Worksheets("Sheet1").Range("E3").Value
    .BCC = ""
    .Subject = "Document" & "__" & Worksheets("Sheet1").Range("B4") & "__" & Worksheets("Sheet1").Range("B7")
    .HTMLBody = RangetoHTML(Rng)
    'piece-jointe doit etre obligatoirement enregistree sur disque
    .Attachments.Add TempFilePath & TempFileName & FileExtStr
    .Display
    End With
    On Error GoTo 0

    With Application
    .EnableEvents = True
    .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
    End Sub
    0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    En y regardant de plus pret, le lien que je vous ai mis ne convient pas vraiment. Votre code ne peut pas etre utilise sur un MAC sans modifications. Je regarde si j'ai Outlook sur un MAC et je regarde les modif a apporter

    A+
    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    https://www.cjoint.com/c/EAgrGlzmjXJ

    il faudra adapter les noms de feuille car il semblerait que vous utilisez une version anglaise d'excel !!!!!!!

    pour lancer c'est le sub test_os
    0