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.
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: