Envoyer mail (sous Outlook) lorsque condition remplie dans fichier Excel

ozone083 Messages postés 13 Date d'inscription samedi 9 avril 2011 Statut Membre Dernière intervention 12 janvier 2012 - 5 juil. 2011 à 10:51
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 8 juil. 2011 à 11:43
Bonjour,

J'avais, il y'a quelques temps, réussi à écrire une macro pour envoyer via Lotus Notes un mail lorsqu'une condition était remplie dans un fichier Excel.
Je suis passé sous Outlook et j'aimerai donc faire la même chose ....mais ça coince.

J'ai un fichier Excel dans lequel j'aurai donc en colonne A (à partir ligne 4) des dates ; si la date marquée est inférieure de 3 jours à la date d'aujourd'hui, il faut que cela m'envoie un mail.


Voici ma macro ; c'est un copier coller de macros trouvées sur le net.

[i]'[i]Sub SendMail_Outlook()

'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library"

Dim Ol As New Outlook.Application
Dim Olmail As MailItem
Dim CurrFile As String
Dim Lig_Deb, Lig_Fin As Integer 'ligne de début, de fin
Dim sDates_Col As String 'colonnes qui contiennent les dates à tester et les adresses mail
Dim i As Integer
Lig_Deb = 4 'dans ma feuille Excel, les dates à tester commencent en ligne 4
sDates_Col = "A" ' et elles sont en colonne A ( 1ere colonne)
'Ligne de fin =1ère cellule vide dans la colonne des dates
Lig_Fin = Val(Range(sDates_Col & CStr(Lig_Deb)).End(xlDown).Row)
Set Ol = New Outlook.Application
Set Olmail = Ol.CreateItem(olMailItem)
' Sheets("REX").Select
For i = Lig_Deb To Lig_Fin
Range(sDates_Col & CStr(i)).Select 'activer la cellule testée
duree = Date - ActiveCell.Value ' la date est dans la cellule active
If duree = -3 Then 'echeance est après demain
With Olmail
.To = Range("B1").Value
.Subject = Range("B2").Value
.Body = Range("B3").Value
'.Attachments.Add "c:\data\essai.doc"
.Display '.Send
'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display)
End With
End If
Next i
End Sub/i


Cela bloque au niveau de Lig_Fin !?
Pourriez vous m'aider et corriger ce qui ne va pas ?
Merci.

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
8 juil. 2011 à 11:43
Bonjour,
Cela bloque au niveau de Lig_Fin !?

tu veux dire cette ligne ?
Lig_Fin = Val(Range(sDates_Col & CStr(Lig_Deb)).End(xlDown).Row)



Je viens de tester cette portion de code, et je ne rencontre pas de souci.
As tu un message d'erreur ?
Au dessus de ta ligne 4, qu'as tu ? (des filtres ou autre chose ?).
Sous quelle version d'Excel es-tu ? (2010, 2007, 2003..)


PS: pour tes prochains posts, utilises les balises de codes stp (3 eme icone en partant de la droite).

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI

PS: Merci d'utiliser les balises de
0
Rejoignez-nous