macro événementielle

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C@thy

XLDnaute Barbatruc
bonjour le forum,

je ne joins pas mon appli car c'est un mastodonte.

Par macro je vais traiter tous les mails d'une BAL et remplir une ligne excel par mail : date envoi mail, nom prénom émetteur, objet, etc... etc...
tout cela fonctionne à peu près bien😀.

Ensuite j'ai créé une macro événementielle sur la colonne P :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If not Intersect(Target, Range("P2:P5000")) Is Nothing Then 
Range("P" & Target.Row) = Date
EnvoiEmail
end if
End Sub
Code:
Sub EnvoiEmail()
Dim objOLApp As New Outlook.Application
Dim OLMail As Outlook.MailItem
Set objOLApp = New Outlook.Application
Set OLMail = objOLApp.CreateItem(olMailItem)
With OLMail
.To = "c@thy.fr"
.Subject = "toto"
.HTMLBody = "Bonjour," & "<BR><BR>On va s'occuper de vous " & "<BR><BR>Cordialement<BR>" & "<BR><BR>C@thy"
.Display
End With
End Sub
Et là, les soucis commencent...🙄
car maintenant, à chaque ligne que je crée je prépare l'e-mail, et je me retrouve avec 100 e-mails en préparation😱 (je rentre une formule en colonne P par macro...😱)
ensuite (plus dur sans doute), je ne voudrais mettre la date d'envoi (= date du jour) dans la colonne P que quand le mail a été réellement envoyé... mais comment savoir si on n'a pas quitté outlook sans envoyer le mail😕

Merci à vous si vous savez comment m'aider un peu sur ce coup-là, et big bisous

C@thy
 
Re : macro événementielle

Bonjour Cathy,

essaye peut être comme suit :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("P2:P5000")) Is Nothing Then
Application.EnableEvents = False
Range("P" & Target.Row) = Date
EnvoiEmail
Application.EnableEvents = True
End If
End Sub

bon après midi
@+

Edition : bonjour Bruno🙂
 
Re : macro événementielle

Merci les boyz,

pour Bruno : comme je l'ai dit plus haut, j'ai une macro qui écrit en colonne D , donc voilà pourquoi...

Pour Pierrot,
merci à toi, ça n'a rien changé ;( j'ai toujours mes mails... oinnnnnnnnnnn...

Edit : Oups! J'ai compris, Pierrot, je vais mettre le Application.EnableEvents = False lors de la création de mes lignes, et je te dis...


Bises

C@thy
 
Dernière édition:
Re : macro événementielle

Yep, Pierrot, ça maaaaaarche!

Et hop! Un problème de résolu!!! Un grand merci à toi 😉

Pour le 2ème, comme dit Bruno, je crois bien que c'est impossible, comment tester si on a fait send?
sauf...
quand on referme le mail sans l'envoyer il pose une question : enregistrer les modifications?
donc, quelle que soit la réponse (oui ou non) il faudrait pouvoir tester si on a cette question, mais comment???

Bizzz et un grand merci à vous deux.

C@thy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
178
Réponses
12
Affichages
645
Réponses
6
Affichages
963
Retour