boite de validation lors d'envoi de mail par excel

stephanie31

XLDnaute Nouveau
Bonjour,

Je suis confronté devant un problème qui, devant le nombre de discussions sur les forums, n'est pas nouveau et pourtant je ne suis pas arrivé à m'en débrouiller.
Voilà ce qui me bloque :
A l'aide d'une macro initiée par un double clic dans une cellule, je crée un nouveau mail dans Outlook 2007, il se prérempli automatiquement et l'utilisateur de la macro n'a plus qu'à le vérifier et l'envoyer.
Pour des raisons de sécurité plusieurs boîtes de dialogues apparaissent pour avertir qu'une application demande à envoyer un mail, il faut accepter 3 fois et le tour est joué.
Néanmoins existe t'il un moyen pour passer outre ces contrôles, tout en gardant l'option que ce soit l'utilisateur qui envoie à la fin le mail. J'ai bien essayé quelques parades qui sont proposées ça et là mais sans succès (il faut bien reconnaitre que je ne suis pas une experte en vba !).
Voici un morceau épuré de la macro concernée actuellement.

merci

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim OutlookApp As New Outlook.Application
Dim Mess As Outlook.MailItem, Desti As String

Desti = Sheets("base").Range("G13").Value
Set OutlookApp = Outlook.Application
Set Mess = OutlookApp.CreateItem(olMailItem)
With Mess
.Subject = "Demande de facturation "
.Body = "Bonjour"
.Recipients.Add Desti
.Display
End With

End Sub
 

pijaku

XLDnaute Occasionnel
Re : boite de validation lors d'envoi de mail par excel

Bonjour,

Tout d'abord, je précise ne pas disposer d'outlook, donc je ne peux pas tester...
Tu dis :
Pour des raisons de sécurité plusieurs boîtes de dialogues apparaissent pour avertir qu'une application demande à envoyer un mail, il faut accepter 3 fois et le tour est joué.
Ces messages, s'ils sont des alertes d'Excel, peuvent peut être être évités par :
Code:
Application.DisplayAlerts = False
Que tu peux appliquer comme ceci :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim OutlookApp As New Outlook.Application
Dim Mess As Outlook.MailItem, Desti As String
Application.DisplayAlerts = False
Desti = Sheets("base").Range("G13").Value
Set OutlookApp = Outlook.Application
Set Mess = OutlookApp.CreateItem(olMailItem)
With Mess
.Subject = "Demande de facturation "
.Body = "Bonjour" 
.Recipients.Add Desti
.Display
End With
Application.DisplayAlerts = True
End Sub .
Si ce n'est pas le cas, ou que cela ne fonctionne pas mieux, il convient de nous donner le texte des messages d'erreur.
 

camarchepas

XLDnaute Barbatruc
Re : boite de validation lors d'envoi de mail par excel

Bonjour Stéphanie,

Bonjour Franck , et oui pas rafraichi l'ecran , tes conseilles sont en effet interressant mais à priori cela ne vient pas d'excel

LE problème est surtout que pour moi , y'a pas de boite de dialogue ,

Donc difficile de t'aider ,

Mais peut être avec des sendkeys bien placés .....
 
Dernière édition:

stephanie31

XLDnaute Nouveau
Re : boite de validation lors d'envoi de mail par excel

Bonjour, merci de vous pencher sur mon cas.

Effectivement vu les remarques je vois que je n'ai pas été assez précise.
La macro est sur excel, sollicite outlook pour créer le mail et effectivement c'est plutôt une alerte d'outlook qui apparait à 3 reprises. J'ai mis une "photo" de la boîte d'alerte en pièce jointe.
En complément, je précise que cette macro est et sera utilée sur des ordinateurs sur mon lieu de travail.

est ce plus clair ?
 

Pièces jointes

  • boite d'alerte.doc
    223 KB · Affichages: 78

MJ13

XLDnaute Barbatruc
Re : boite de validation lors d'envoi de mail par excel

Bonjour à tous

Tu peux tester cette macro.

Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim OutlookApp As New Outlook.Application
Dim Mess As Outlook.MailItem, Destinataire As String

Destinataire = Sheets("base").Range("A1").Value
DestinataireCopy = Sheets("base").Range("B1").Value
PieceJointe = Sheets("base").Range("C1").Value

Set OutlookApp = Outlook.Application
Set Mess = OutlookApp.CreateItem(olMailItem)

With Mess
.To = Destinataire
.CC = DestinataireCopy
.Subject = "Demande de facturation"
.Body = "Bonjour" & Chr(10) & " " & Chr(10) & "Veuillez trouver çi-joint votre facture" & Chr(10) & " " & Chr(10) & "Cordialement" & Chr(10) & "Moi"
.Attachments.Add PieceJointe
.Display

Sleep 5000
SendKeys ("%n")

End With

End Sub
 

pijaku

XLDnaute Occasionnel
Re : boite de validation lors d'envoi de mail par excel

Alors effectivement, il s'agit de message d'alerte d'outlook et non d'excel.
Il est possible de ne plus les afficher en changeant les options d'outllok, comme indiqué dans l'alerte, voir dans l'aide.
Cependant, comme cette macro sera utilisée sur plusieurs postes de travail, voir effectivement du côté des "sendkeys", qui agissent exactement comme si l'utilisateur appuyait sur les touches de son clavier.

Ce lien n'existe plus

Au passage salutations à camarchepas.
 

stephanie31

XLDnaute Nouveau
Re : boite de validation lors d'envoi de mail par excel

merci pour vos réponses :

MJ13 : je vais essayer ta macro
joss56 : j'avais vu cette option sur des forum mais je l'avais peut être trop rapidement écarté car je partais sur le principe qu'il fallait l'installer sur tous les micros ce qui dans mon cas ne sera techniquement pas possible. Je vais essayer de creuser un peu cette piste
Pijaku : j'avais essayé avec les sendkey mais ça ne marche pas car, je crois, qu'une fois que le message s'affiche c'est qu'on a basculé sous outlook qui attend une réponse et donc la macro excel est en attente et ne lit pas la ligne "sendkey"..... du moins c'est ce que j'ai cru comprendre voyant que ça ne faisait rien.

d'ors et déjà merci et je vais essayer la macro de MJ13, je vous tiens au courant
 

stephanie31

XLDnaute Nouveau
Re : boite de validation lors d'envoi de mail par excel

Bon, échec sur toute les lignes

la macro de MJ13 n'est pas plus efficace, je pense que ce sont les sendkeys qui ne sont pas efficaces dans mon cas.
le soft Yeskey a besoin d'être installé sur le micro, or dans ma société on ne peux rien installer sur les PC si ça n'a pas été validé par les instances nationales autant dire que c'est cuit.

merci quand même pour toutes vos idées, finalement peut être que ce n'est pas possible.
 

camarchepas

XLDnaute Barbatruc
Re : boite de validation lors d'envoi de mail par excel

Stéphanie ,

tout le problème est de pouvoir reconstituer l'environnement de test , et surtout le problème , ensuite c'est sur des solutions y'en à par paquet de 10. ne soit pas trop impatiente.
Les cellules grises sont en plein boulot et pendant la période des fêtes , çà fume c'est sur .
De mémoire , j'ai du voir un truc sur internet il y a longtemps déjà ou en fait l'on ouvre une instance outlook, au lieu de piloter depuis Excel.

J'essais de remettre la main dessus pour voir si l'on peut l'adapter à ton besoin
 

camarchepas

XLDnaute Barbatruc
Re : boite de validation lors d'envoi de mail par excel

Stéphanie ,

JE sais pas si tu peux intevenir sur la config de outlook :

option : Ne jamais m’avertir des activités douteuses (non recommandé) dans Outlook
Voir le menu Outils / Centre de gestion de confidentialité / Accès par programme
 

MJ13

XLDnaute Barbatruc
Re : boite de validation lors d'envoi de mail par excel

Re

Sinon, j'avais fait un fichier de ce genre il y a quelques années :).

A tester et à adapter (c'était pour XL2003 à l'époque).
 

Pièces jointes

  • Envoi_Mail_Auto_MJ_2_Solutions.zip
    13.2 KB · Affichages: 63
  • Envoi_Mail_Auto_MJ_2_Solutions.zip
    13.2 KB · Affichages: 67
  • Envoi_Mail_Auto_MJ_2_Solutions.zip
    13.2 KB · Affichages: 68

Discussions similaires

Réponses
6
Affichages
268

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 838
dernier inscrit
Christelle.B86