![]() |
| 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é. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre du Club
![]() Date d'inscription: janvier 2005
Messages: 104
|
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 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 454
|
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 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
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#5 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 454
|
Salut,
Félicitations pour ta nouvelle vie ! Pour ta dernière question ceci devrait convenir : Code :
wsExcel.range("a1").value= MyMail.subject
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#7 (permalink) |
|
Membre du Club
![]() Date d'inscription: janvier 2005
Messages: 104
|
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 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... |
|
|
|
![]() |
![]() |
||
Macro: Mail qui ouvre un fichier Excel et lance une macro
|
||
| Outils de la discussion | |
|
|