Bonjour,

J'ai développé un petit classeur Excel qui permet d'envoyer le contenu de la feuille active en courriel. La macro enregistre le contenu en HTM dans le dossier temporaire de l'usager puis l'insère dans le corps du message. Le tout fonctionne à merveille lorsqu'il est ouvert en mode "local" (sur le disque dur). Par contre, il y à une erreur lorsqu'il est ouvert par le web. L'erreur obtenue est "1004 : La méthode 'Publish' de l'objet 'PublishObject' a échoué."

Le segment de code en erreur est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
    ActiveWorkbook.PublishObjects.Add(xlSourceRange, temp & "\sht.htm", _
    rngeSend.Parent.Name, rngeSend.Address, xlHtmlStatic).Publish True
Il est important de noter que je ne suis pas l'administrateur de l'intranet ou le document est hébergé. J'ai donc très peu de contrôle de ce côté là. Y'a t'il quelque chose que je peux changer à ma macro pour la rendre fonctionnelle? Sinon, qu'est-ce que je peux demander aux administrateurs de l'intranet afin de rendre rendre la macro fonctionnelle à partir du web?

Voici le code de la macro en entier:

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
28
29
30
31
32
33
34
35
Sub Mail()
On Error GoTo erreur
Dim ol As Object, myItem As Object
Dim FSObj As Scripting.FileSystemObject, TStream As Scripting.TextStream
Dim rngeSend As Range, strHTMLBody As String
 
    ActiveWorkbook.ActiveSheet.Unprotect Password:="xxxxx"
    Set ol = CreateObject("outlook.application")
    Set myItem = ol.CreateItem(olMailItem)
    Set rngeSend = Range("A1:F15")
 
    'Crée le fichier HTML
    Dim temp As String
    temp = UCase(Environ("TEMP"))
    ActiveWorkbook.PublishObjects.Add(xlSourceRange, temp & "\sht.htm", _
    rngeSend.Parent.Name, rngeSend.Address, xlHtmlStatic).Publish True
 
    'Ouvre le fichier HTML avec FilesystemObject et le met dans un objet TextStream
    Set FSObj = New Scripting.FileSystemObject
    Set TStream = FSObj.OpenTextFile(temp & "\sht.htm", ForReading)
    strHTMLBody = TStream.ReadAll
 
    'Crée et envoie le courriel
    myItem.To = "_Boite Traitement Documents"
    myItem.Subject = "Demande de documents : " & ActiveSheet.Range("A1").Value
    myItem.htmlBody = strHTMLBody
    myItem.Send
    Set ol = Nothing
    MsgBox "Demande envoyée avec succès.", vbOKOnly, "Courriel"
    ActiveWorkbook.ActiveSheet.Protect Password:="xxxxx"
    Exit Sub
 
erreur:
    MsgBox Err.Number & ": " & Err.Description & " Impossible d'envoyer la demande. Contactez le support informatique.", vbOKOnly, "Courriel"
End Sub