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