Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 07/07/2008, 11h34   #1 (permalink)
Membre du Club
 
Date d'inscription: janvier 2005
Messages: 104
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
Lameth est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/07/2008, 17h14   #2 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 454
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'execution d'un script (vba)
En ajoutant une signature éléctronique on peut s'affranchir des messages d'alerte.
voici un script :
Code :
 
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 :
 '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
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/07/2008, 10h52   #3 (permalink)
Membre du Club
 
Date d'inscription: janvier 2005
Messages: 104
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!
Lameth est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/07/2008, 13h27   #4 (permalink)
Membre du Club
 
Date d'inscription: janvier 2005
Messages: 104
Par défaut

Question subsidiaire, je voudrais afficher le subject de mon mail dans une cellule de mon classeur Excel... Une idee?

Merci,

Lameth
Lameth est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/07/2008, 13h40   #5 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 454
Par défaut

Salut,
Félicitations pour ta nouvelle vie !
Pour ta dernière question ceci devrait convenir :

Code :
wsExcel.range("a1").value= MyMail.subject
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/07/2008, 13h50   #6 (permalink)
Membre du Club
 
Date d'inscription: janvier 2005
Messages: 104
Par défaut

Merci pour ton aide et ton humour, c'est absolument nikel.
Lameth est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/07/2008, 14h42   #7 (permalink)
Membre du Club
 
Date d'inscription: janvier 2005
Messages: 104
Par défaut

Code :
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...
Lameth est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide