Problème copie code VBA - message erreur compilation Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
J
Jerem76
Jeune membre
Jeune membre
Messages : 48
Inscrit le : 27 juillet 2017
Version d'Excel : 2010

Message par Jerem76 » 11 septembre 2017, 10:12

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
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'987
Appréciations reçues : 359
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 11 septembre 2017, 10:35

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
J
Jerem76
Jeune membre
Jeune membre
Messages : 48
Inscrit le : 27 juillet 2017
Version d'Excel : 2010

Message par Jerem76 » 11 septembre 2017, 10:39

Bonjour à toi,

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

Cela fonctionne parfaitement avec cette modif.

Merci
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'987
Appréciations reçues : 359
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 11 septembre 2017, 10:42

Bonjour,

il s'agissait bien d'un problème de références manquantes pour outlook.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message