Partage
  • Partager sur Facebook
  • Partager sur Twitter

VB ?

Pour une macro Excel

    12 octobre 2006 à 23:59:29

    Bonjour,

    Je cherche le moyen sous excel pour faire un bouton qui me permettrait d'envoyer un feuillet via Outlook.

    Mon but étant que l'utilisateur se place sur le feuillet "Legal Matrix" et qu'il clique sur le bouton "Send Mail". Ceci m'ouvrirai Outlook 2003, créerai un nouveau mail et attacherai seulement le feuillet "Legal Matrix". Le mail serait envoyer à "nom.prénom@societé.com" et aurais pour objet "Legal Matrix Check List"

    Pourriez vous m'expliquer comment réaliser cette macro ? je n'ai pas de grandes connaissances en VB alors soyez clément, évitez moi des codes de 2000 lignes que je n'arriverais pas à comprendre :) Faites au plus simple pour m'aider (si vous voulez m'aider bien sûr :p ) , ça vous fera gagner du temps ;)

    Je vous remercie d'avance !

    A bientôt ;)
    • Partager sur Facebook
    • Partager sur Twitter
      13 octobre 2006 à 0:48:24

      Bonsoir,

      Je pense que le plus simple serait que le bouton créé un fichier excel avec uniquement la copie de la feuille... Le fichier en question (LegalMatrix.xls, par exemple) serait alors envoyé par mail avec ce genre de code :

      Sub EnvoiMail()

      Dim MonOutlook As Object
      Dim MonMessage As Object
      Set MonOutlook = CreateObject("Outlook.Application")
      Set MonMessage = MonOutlook.createitem(0)

      With MonMessage
      .to = "nom1.prénom1@societé.com;nom2.prénom2@societé.com"
      .cc = "nom3.prénom3@societé.com"
      .bcc = "nom4.prénom4@societé.com"
      .Attachments.Add "c:\LegalMatrix.xls"
      .Subject = "Legal Matrix Check List"
      End With

      Corps = "Dear Sir,"
      Corps = Corps & Chr(13) & Chr(10)
      Corps = Corps & "Please find attached the up-to-date version of LegalMatrix.xls"
      Corps = Corps & Chr(13) & Chr(10)
      Corps = Corps & "Best regards."

      MonMessage.Body = Corps
      MonMessage.Send

      Set MonOutlook = Nothing

      End Sub

      C'est du VBA, pas du VB...

      "c:\...\LegalMatrix.xls" doit être remplacé par le chemin du fichier précédemment créé...

      EDIT : Ci dessous le code pour l'évènement click de CommandButton1 (nom de bouton par défaut)

      Private Sub CommandButton1_Click()

      ThisWorkbook.Sheets("Legal Matrix").Copy
      ActiveSheet.Shapes("CommandButton1").Select
      Selection.Delete
      ActiveWorkbook.SaveAs Filename:= "C:\...\LegalMatrix.xls"
      Windows("LegalMatrix.xls").Activate
      ActiveWindow.Close
      Windows("Classeur2.xls").Activate

      EnvoiMail

      End Sub

      Même remarque que ci-dessus concernant "C:\...\LegalMatrix.xls"... Remplacer aussi "classeur2.xls" par le nom du fichier initial (celui à partir duquel est exécuté le code)...

      Dans le fichier créé, le bouton est supprimé dynamiquement afin que le destinataire n'ait que le contenu de la feuille...

      Ne pas oublier également de rajouter la référence "Microsoft Outlook 11.0 Object Library"...
      • Partager sur Facebook
      • Partager sur Twitter

      VB ?

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown