Macro VBA

didwin Messages postés 56 Date d'inscription   Statut Membre Dernière intervention   -  
Bidouilleu_R Messages postés 1209 Statut Membre -
Bonjour,

Je voudrais faire une petite macro qui me parait simple mais étant novice je rame. voila ce que je veux faire 1) je veux copier une adresse mail qui se trouve dans une classeur excel ensuite je veux aller dans outlook créer un nouveau message et coller l adresse mail.

merci de votre aide

Didwin
Configuration: Windows 2003 Internet Explorer 6.0

4 réponses

  1. toto1983 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   13
     
    Bon pour débuter : https://codes-sources.commentcamarche.net/

    Moi aussi je vais passer par là, mais bon rien ne vaut les bouquins ou les e-Books concernant le VBA, là tu apprends réellement l'essentiel
    0
  2. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    Bonjour,
    je veux pas taper l'incruste mais pour vous aider....
    Vous adapterer selon vos besoin présent ou futur

    Sub Send_Mail_Outlook()
    
    'Il faut activer la référence "Microsoft Outlook Library" Avant de lancer cette macro, on fait ...
    ' Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"
    
       Dim ObjOutlook As New Outlook.Application
       Dim ObjOutlookmail As MailItem
       Dim NomFichier As String
       
       Set ObjOutlook = New Outlook.Application
       Set oBjMail = ObjOutlook.CreateItem(olMailItem)
       
    'pour récupérer le nom du fichier + le chemin 
    ' méthode facile
    
       Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
        If Nom_Fichier = "Faux" Then Exit Sub
        If VarType(Nom_Fichier) = vbBoolean Then Exit Sub
    
    
       
       
       With oBjMail
          .To = Range("a3").Value                        ' le destinataire
          .Subject = Range("a1").Value                 ' l'objet du mail
          .Body = "Ici le texte Blblblbla " & Chr(10) & Range("a2").Value     'le corps du mail ..son contenu
          .Attachments.Add "C:\Data\essai.txt"        ' ou Nomfichier
          .Display  '   Ici on peut mettre                  '.Send' pour l'envoyer sans vérification
          
    
       End With
        
        ObjOutlook.Quit  ' on libère l'objet après utilisation très important
       
    End Sub
    0
  3. didwin Messages postés 56 Date d'inscription   Statut Membre Dernière intervention  
     
    merci de ton info mais je suis bloqué si tu veux je pars de mon fichier excel qui est déja ouvert et ma macro par de ce fichiel elle doit récupérer l adresse mail en b20 puis aller la coller dans outlook pour que je fasse le message merci par avance.

    Didiwin
    0
    1. pou pouille Messages postés 212 Statut Membre 31
       
      pour le destinataire tu n'as que cela à changer...
      .To = Range("a3").Value ->
      .To = Range("b20").Value

      pour la suite je ne sais pas faire (enfin avec la méthode précédente, tu peut écrir ton message d'abord dans excel dans une cellule par exemple la A2)
      .Body = Range("a2").Value
      0
  4. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    bonjour didwin, et pou pouille, merci pour le suivi

    dans le module que je te donne
    j'ai mis range("a3") .Value car je n'avais pas le temps de modifier mon code....
    l'objet oBjMail peut contenir différents champ
    tu l'utilises comme une variable typée.

    oBjMail.To="Jean Dupont"
    mais tu pourrais aussi bien écrire

    Dim Destinataire as string
    Destinataire=range("A20").value
    oBjMail.to=Destinataire
    et pareil pour le message du corps
    par exemple
    Dim Msg as string
    Msg=chr(10)&chr(10) & "Bonjour," &Chr(10) & chr(10)&Chr(10) & chr(10)&"Salutations"

    ce qui donne....

    With oBjMail
    .To = Destinataire ' le destinataire
    .Subject = "Essai pour voir" ' l'objet du mail
    .Body = msg 'le corps du mail ..son contenu
    .Attachments.Add "C:\Data\essai.txt" ' ou Nomfichier si tu n'en veux pas tu l'enlèves
    .Display ' Ici on peut mettre '.Send' pour l'envoyer sans vérification

    End With
    0