Problème copie code VBA - message erreur compilation

Bonjour,

j'avais besoin d'un code VBA pour un projet. Ce code devait envoyer une sélection de données par mail. Il fonctionnait très bien pour le fichier de test que j'avais envoyé. Je dois maintenant le déployer sur 2 fichiers différents. Mais cela ne fonctionne pas, j'ai le message d'erreur suivant:

Erreur de compilation : type défini par l'utilisateur non défini.

(passage surligné dans le code)

J'ai déjà regardé dans "Outils", "Références" et il y a les mêmes cases cochées. Les recherches sur Google ne donnent rien, et je n'y connais pas grand chose en VBA.

Je précise que pour des raisons de sécurité / confidentialité, j'ai volontairement modifié les données sensibles avant de publier le code

Merci d'avance

Sub SendRangeByMail()

Dim rngeSend As Range

info = "GMO 1350"

With Application

On Error Resume Next

Set rngeSend = Sheets(info).Range(Range("AP5").CurrentRegion.Address)

If rngeSend Is Nothing Then Exit Sub

On Error GoTo 0

.ActiveWorkbook.PublishObjects.Add(4, "C:\temp\XLRange.htm", rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True

Call PrepareOutlookMail("C:\temp\XLRange.htm")

Kill "C:\temp\XLRange.htm"

End With

End Sub

Sub PrepareOutlookMail(sFileName)

Dim appOutlook As Outlook.Application

Dim oMail As Outlook.MailItem

Set appOutlook = CreateObject("Outlook.Application")

If Not (appOutlook Is Nothing) Then

Set oMail = appOutlook.CreateItem(olMailItem)

With oMail

.To = "toto@.com"

.Subject = "Données GMO"

.HTMLBody = ReadFile(sFileName)

.Display 'metre cette ligne en commentaire pour éviter l'affichage du mail

'.Send 'mettre cette ligne active pour l'envoi du mail sans qu'il soit affiché

End With

Set oMail = Nothing

Set appOutlook = Nothing

End If

End Sub

Public Function ReadFile(sFileName) As String

Dim fso As Object, fFile As Object

Dim sTemp As String

Set fso = CreateObject("Scripting.FileSystemObject")

Set fFile = fso.OpenTextFile(sFileName, 1, False)

sTemp = fFile.ReadAll

fFile.Close

Set fFile = Nothing

ReadFile = sTemp

End Function

Bonjour,

essaie en remplaçant ces 2 lignes

Dim appOutlook As Outlook.Application
Dim oMail As Outlook.MailItem

par

Dim appOutlook As Object
Dim oMail As Object

Bonjour à toi,

je venais justement de tester cette solution et clore ce sujet ... tu m'as devancé !

Cela fonctionne parfaitement avec cette modif.

Merci

Bonjour,

il s'agissait bien d'un problème de références manquantes pour outlook.

Rechercher des sujets similaires à "probleme copie code vba message erreur compilation"