IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Macro: Mail qui ouvre un fichier Excel et lance une macro


Sujet :

VBA Outlook

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 72
    Points
    72
    Par défaut Macro: Mail qui ouvre un fichier Excel et lance une macro
    Bonjour,

    Je viens de decouvrir que Outlook pouvait faire du VBA... Ca pourrait changer ma vie...

    Je veux pouvoir m'envoyer un mail dont l'objet serait "LANCER MACRO" et qui me lance une macro Outlook qui ouvre un fichier Excel et lance une maco Excel.

    Est-ce possible?

    Merci
    Lameth

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,
    Oui effectivement il fait du vba mais y a pas d'enregistreur !

    Ce que tu demandes est possible.

    Il faut utiliser les règles et alertes en demandant l'exécution d'un script (vba)
    En ajoutant une signature électronique on peut s'affranchir des messages d'alerte.
    voici un script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub MonScript(myMtgReq As Outlook.MailItem)
    Dim StrID, olNS
    StrID = myMtgReq.EntryID
    Set olNS = Application.GetNamespace("MAPI")
    Dim MyMail as outlook.mailitem
    Set MyMail= olNS.GetItemFromID(StrID)
    End Sub
    et ici l'utilisation d'excel auquel il faut faire REFERENCE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     'Déclaration des variables
            Dim appExcel As Excel.Application    'Application Excel
            Dim wbExcel As Excel.Workbook    'Classeur Excel
            Dim wsExcel As Excel.Worksheet    'Feuille Excel
            Dim xlmacroBook As Excel.Workbook
            Dim MavarXL
     
            'Ouverture de l'application
            Set appExcel = CreateObject("Excel.Application")
            appExcel.Visible = False
            'Ouverture d'un fichier Excel
            Set wbExcel = appExcel.Workbooks.Open(Repertoire & "monfichier.xls")
            'wsExcel correspond à la première feuille du fichier
            Set wsExcel = wbExcel.Worksheets(1)
    'ici la macro est dans un fichier différent
            Set xlmacroBook = appExcel.Workbooks.Open("\c:\temp\MonfichierMACRO.xls", 0, 1)
    'je lance la macro ouverture avec un paramétre
              MavarXL = appExcel.Run(xlmacroBook.Name & "!ouverture", Left(CStr(ObjCurrentMessage.ReceivedTime), 10))
     
     
            End If

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 72
    Points
    72
    Par défaut
    Ca marche nikel! Merci beaucoup.

    Ca change ma vie: 3615 my life, en partant de chez moi je m'envoie un mail avec mon blacberry, je marche 20 minutes, j'arrive, le job est fait!

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 72
    Points
    72
    Par défaut
    Question subsidiaire, je voudrais afficher le subject de mon mail dans une cellule de mon classeur Excel... Une idee?

    Merci,

    Lameth

  5. #5
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,
    Félicitations pour ta nouvelle vie !
    Pour ta dernière question ceci devrait convenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsExcel.range("a1").value= MyMail.subject

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 72
    Points
    72
    Par défaut
    Merci pour ton aide et ton humour, c'est absolument nikel.

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 129
    Points : 72
    Points
    72
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub LastVaR(myMtgReq As Outlook.MailItem)
     
    Dim StrID, olNS
    StrID = myMtgReq.EntryID
    Set olNS = Application.GetNamespace("MAPI")
    Dim MyMail As Outlook.MailItem
    Set MyMail = olNS.GetItemFromID(StrID)
     
    Dim appExcel As Excel.Application
    Dim wbExcel As Excel.Workbook
    Dim wsExcel As Excel.Worksheet
    Dim MavarXL
     
    Set appExcel = CreateObject("Excel.Application")
    appExcel.Visible = True
    Set wbExcel = appExcel.Workbooks.Open("C:\Fichier.xls")
    Set wsExcel = wbExcel.Worksheets(3)
    wsExcel.Range("E13").Value = MyMail.Subject
    MavarXL = appExcel.Run("Fichier.xls" & "!Test")
     
    End Sub
    Donc c'est nikel et ca donne ca.
    Un nouveau probleme que je me pose c'est si le fichier est deja ouvert.
    Certes un .save et .close a chaque fois ca doit le faire mais s'il est deja ouvert a la base je suis embete...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/02/2014, 09h06
  2. Créer un programme qui ouvre un fichier Excel
    Par Kris0311 dans le forum C#
    Réponses: 4
    Dernier message: 13/07/2010, 15h07
  3. Réponses: 4
    Dernier message: 24/02/2009, 23h09
  4. remplacement carré par ; dans un fichier excel crée par une macro
    Par om51ft dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/11/2007, 16h00
  5. Réponses: 1
    Dernier message: 23/09/2006, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo