Macro pour envoyer le fax

Résolu
Philou73CH -  
Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   -
Bonjou / Bonsoir,

J'utilise la macro ci dessous pour envoyer un mail.
Mon problème est que maintenant, j'ai 2 adresses auxquelles le mail est destiné. Et je n'arrive pas à faire pour que les 2 adresses soient prisent. il n'y a que la première.

Pouvez-vous m'aider
Dim Variable As String,
variable = "[***@*** ; ***@***]"

Dim OL As Object
Dim OLmail As Object

Set OL = CreateObject("Outlook.Application")
Set OLmail = OL.CreateItem(0)

With OLmail

.To = "[variable]"
.Subject = "mail "
.Body = " je suis dans la mouisse

2 réponses

  1. Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   40
     
    A mon avis, le problème vient des crochets qui encadrfent les 2 adresses...

    J'ai testé en modifiant comme suit et ça fonctionne :

    Sub Mail()
    Dim Variable As String
    Variable = "***@***;***@***"
    
    Dim OL As Object
    Dim OLmail As Outlook.MailItem 'As Object (ça permet d'avoir les propriétés en mode édition)
    
    Set OL = CreateObject("Outlook.Application")
    Set OLmail = OL.CreateItem(0)
    
    With OLmail
    
    .To = Variable
    .Subject = "mail "
    .Body = " je suis dans la mouisse"
    .Display
    End With
    
    End Sub
    0
    1. Philou73CH
       
      Bonjour / Bonsoir,

      Normad, je tiens à vous remercier d'avoir pris du temps pour vous pencher sur mon problème et d'y répondre. Et ne vous m'éprenez pas, si j'ai pas été réactif rapidement, c'est que j'ai des horaires irréguliers. Me voilà donc au job, j'ai essayé et hélas j'ai le message suivant : " Erreur de compilation. Type défini par l'utilisateur non défini." Cela vous parlera peu être, moi pas :-(

      Je me dois d'être honnête, je pensais pouvoir adapter la solution proposée à ce que j'ai réellement, mais à voir c'est au-delà de mes mini connaissances. Donc vous trouverez ci-dessous, ma macro réelle. Elle a pour but de prendre le nom du destinataire depuis une feuille excel ( Données, B5) . Car le destinataire évolue selon les mutations et il est plus simple de changer à une place sur une feuille excel que à de multiple place dans une macro.

      Voici la macro :
      Dim CheminF As String, DateF As String, NomF As String, Destinataire As String
      CheminF = Sheets("Données").Range("B6").Value
      DateF = Format(Date, "dddd dd.mmm.yyyy")
      NomF = Sheets("Feuille commande").Range("D5").Value
      Destinataire = Sheets("Données").Range("B5").Value
      Sheets("Feuille commande").ExportAsFixedFormat Type:=xlTypexslm, Filename:= _
      ActiveWorkbook.Path & CheminF & DateF & "_Commande_n°_" & NomF & ".PDF"
      'Envoi mail pour qui vous savezl avec dossier PDF en pièce jointe
      MsgBox ("! Attention, vous devez avoir boîte email Outlook déjà ouverte !! Si tel n'est pas le cas, l'email ne sera pas envoyé et ira dans le dossier(Boîte d'envoi).")
      Dim OL As Object
      Dim OLmail As Object
      Set OL = CreateObject("Outlook.Application")
      Set OLmail = OL.CreateItem(0)
      With OLmail
      .To = Destinataire
      .Subject = "Commande de matériel à l'aide du Cahier ad-hoc.x"
      .Body = " Bonjour, vous trouverez notre commande n°" & NomF & ", de ce " & DateF & ". Merci à vous et meilleures salutations"
      .Attachments.Add ActiveWorkbook.Path & CheminF & DateF & "_Commande_n°_" & NomF & ".PDF"
      .Display
      End With
      0
  2. Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   40
     
    Bonjour,
    Pour "Erreur de compilation. Type défini par l'utilisateur non défini."

    La référence "Microsoft Outlook 14.0 Object Library" devrait être ajoutée (Menu Outil / Références dans VBA)

    Sinon ça peut aussi marcher en déclarant comme objet, dans ce cas juste modifier la ligne :

    Dim OLmail As Outlook.MailItem


    en

    Dim OLmail As Object


    Pour le reste et surtout la question initiale, il faudrait analyser ce que contient la case où les adresses email sont présentes , soit la cellule B5 de la feuille "Données" qui est lue dans la ligne :

    Destinataire = Sheets("Données").Range("B5").Value

    Dans le premier code, le format de 2 adresses emails entre crochet ne fonctionne pas, il faut simplement séparer les adresses par un point-virgule.
    0