Envoi d'un mail qui plante...

LB59

XLDnaute Junior
Bonsoir à tous,

J'ai parcouru le forum de long en large, j'ai lu des dizaines de posts sur le sujet, mais je n'arrive pas à résoudre mon problème...

J'ai une macro qu'un collègue m'avait aidé à faire il y a qqes mois, qui est censée envoyer un mail en fonction d'une date dans une cellule, l'adresse mail figurant aussi dans le tableau.

L'adresse destinataire est toujours la même, le sujet, le corps aussi.

Seulement cette macro ne fonctionne pas, important, depuis le moment où elle a été faite, je suis passé à Excel 2007, mais je me souviens quelle merdait déjà un peu sous 2003, mais j'avais laissé tombé, je n'avais pas le temps d'y regarder depuis.

Je vous mets le code, vous allez surement sourir en le voyant, mais je suis débutant en VBA :)

Sub essai_mail()

Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Dim i As Variant
Range("AP6").Select
i = ActiveCell().Row
Do While ActiveCell().Value >= Range("AP3").Value
Do While ActiveCell().Value <> ""
If Cells(i, 42).Value < Range("AP3").Value Then
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.Importance = olImportanceHigh
.To = Cells(i, 8)
.Subject = "Backup"
.Body = "Bonjour blablabla...." & Chr(13) & Chr(13) & "Bien à vous,"
.Send
End With
Else
End If
ActiveCell.Offset(1).Select
i = i + 1
Loop
Loop
End Sub

J'avais aussi essayé ça :

Sub essai_mail2()

Sheets("Controle").Select
If Range("AP6").Value < Range("AP3").Value Then
For Each vLigne In [H6:H6]
If vLigne <> "" Then vDestinataires = vDestinataires & vLigne & ";"
Next
'Récup Objet
vObjet = "Backup"
'Récup. message, avec sauts de ligne
For Each vLigne In [H6:H6]
vMessage = "Alerte Backup"
Next
'Crée l'objet Outlook
Set OutlookApp = New Outlook.Application
'Création message Outlook et transmission
Set MItem = OutlookApp.CreateItem(olMailItem)
With MItem
.To = vDestinataires 'Liste des destinataires
.Importance = olImportanceHigh 'Importance du message
.Subject = vObjet 'Objet
.Body = vMessage 'Texte du message
'.Attachments = vPJ 'Pièce jointe
.ReadReceiptRequested = False 'Demande de confirmation de lecture
.Display
End With
End If
Sheets("Feuil1").Select
End Sub


Mais sans succés. sic.

Petite précision, j'affecte la macro à un bouton qui se trouve sur la feuille, et je clique dessus lorsque je veux envoyer les mails.

Merci par avance de vous penchez sur mon problème, je sais que le sujet a été traité de nombreuses fois, j'ai bidouillé ma macro dans tous les sens, mais rien à faire.

Laurent.

J'édite car j'ai oublié de préciser le message d'erreur :

j'ai en surligné bleu :

Set OutlookApp = New Outlook.Application

Et une boîte de dialogue qui me dit ça :

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

Merci.
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Envoi d'un mail qui plante...

Bonjour

Voici un petit fichier que j'ai réalisé pour envoyer à partir d'Excel des mails en utilisant un userform (ou USF ou formulaire). Il fonctionne sous Excel 2003.

Il faut Outlook (pas outlook Express).

Peux tu (ou d'autres XLDiens) le tester et me dire si cela fonctionne?

Ensuite tu peux t'inspirer du code pour faire d'autres types d'envois.
 

Pièces jointes

  • mail Outlook par MJ.zip
    39.4 KB · Affichages: 191

Discussions similaires

Réponses
6
Affichages
305
Réponses
17
Affichages
1 K

Statistiques des forums

Discussions
312 211
Messages
2 086 300
Membres
103 173
dernier inscrit
Cerba95