Hello, hello;

Tout est dans le titre...

J'explique mon process:

Tous les matins, en partant de chez moi, je m'envoie un mail avec mon Blackberry (Outlook est ouvert sur mon poste) dont l'objet est, disons, "Lance ma macro Now!"

Une regle de messagerie dit que je lance un script quand le sujet est "Lance ma macro Now!" (je suis pas sur que l'IT soit super content que potentiellement tout le monde peut avoir acces a mon poste par e-mail, mais c'est un autre probleme):

Le script outlook:

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
22
23
24
Sub LaunM(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")
        wbExcel.Application.AddIns("Analysis ToolPak").Installed = False
        wbExcel.Application.AddIns("Analysis ToolPak").Installed = True
 
        wbExcel.Worksheets(3).Range("E14").Value = MyMail.Subject
 
        Set wsExcel = wbExcel.Worksheets(1)
        MavarXL = appExcel.Run("Fichier.xls" & "!MACRO")
End Sub
J'ouvre donc Fichier.xls et lance la Macro MACRO. Jusque la tout va bien.

Cette MACRO va ouvrir tout un tas de fichiers pour a son tour lancer des macros.

Dans nombreux de ces fichiers, le resultat de la macro est envoye par e-mail (je me contente d'afficher l'email pour faire un check et ils sont lancer manuellement, de toute facon l'alerte outlook empeche le lancement automatique sauf en passant par le petit soft Redemption ou CDO qui a jamais marche chez moi, bref).


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
22
23
24
25
26
27
Sub SNDMail()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
 
    Dim source As Range
    Dim OutApp As Outlook.Application
    Dim OutMail As Outlook.MailItem
 
    Range(Mail).Select
    Set source = Selection
 
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)
    With OutMail
        .To = "Moi"
        .CC = ""
        .BCC = ""
        .Subject = "Mail" & Range("C4").Text
        .HTMLBody = RangetoHTML
        Application.Wait (Now() + 0.0001)
         .Display
    End With
 
    Set OutMail = Nothing
    Set OutApp = Nothing
 
End Sub
Parfois ca lance le mail, parfois pas (ca bugue)...

Au niveau de ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
Toujours sur les memes fichiers... Strange... Il va de soi que lance avec outlook qui a la main, ca marche a chaque fois (c'est a dire si je lance directement manuellement la macro excel qui va ouvrir mes fichiers, lancer les macros et afficher les mails, quand c'est outlook qui la lance - et donc qui ne rend la main que quand tout le process est termine - sur 4 fichiers ca bogue, les macros sont construites exactement de la meme maniere...)

Une idee?

Lameth