Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/07/2008, 11h34   #1
Membre du Club
 
Inscription : janvier 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 119
Points : 41
Points : 41
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 00
Vieux 07/07/2008, 17h14   #2
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
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 :
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 :
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
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 10h52   #3
Membre du Club
 
Inscription : janvier 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 119
Points : 41
Points : 41
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 00
Vieux 15/07/2008, 13h27   #4
Membre du Club
 
Inscription : janvier 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 119
Points : 41
Points : 41
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 00
Vieux 15/07/2008, 13h40   #5
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
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 00
Vieux 15/07/2008, 13h50   #6
Membre du Club
 
Inscription : janvier 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 119
Points : 41
Points : 41
Merci pour ton aide et ton humour, c'est absolument nikel.
Lameth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 14h42   #7
Membre du Club
 
Inscription : janvier 2005
Messages : 119
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 119
Points : 41
Points : 41
Code :
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...
Lameth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h55.


 
 
 
 
Partenaires

Hébergement Web