Envoi mail apres un double clic si cellule gauche est en go

Bonjour à tous,

Je découvre EXCEL depuis quelques jours, je ne m'y connais pas du tout en code, j'arrive à récupérer des bouts mais pas le construire de 0.

Sur le fichier joint que vous verrez, j'essaie de faire ceci:

1- Double clic sur cellule sur cellule D2

2- Si la cellule à gauche (C2) de cette dernière qui a été cliqué (D2) contient GO alors envoi un mail avec en sujet le contenu cellule A2 et B3 et passez la cellule (C2) en FIN.

3- Sinon message box qui s'affiche disant : stop

Et j'aimerai le faire pour chaque ligne qui passerait en GO, sans qu'il m'envoie un mail avec toutes les cellules en GO ahahah !

TYPEHUMAINSTATUTCLIC MAIL
AVIONconducteur GO
VOITUREpiloteNON GO
BATEAUmarinFIN

Si une bonne âme peut m'orienter.

Merci infiniment.

Francis

Bonjour,

C'est relativement clair comme demande sauf la fin :

Et j'aimerai le faire pour chaque ligne qui passerait en GO, sans qu'il m'envoie un mail avec toutes les cellules en GO ahahah !

Que voulez-vous ? Executer au double clic sur une cellule de la colonne D (ssi cellule colonne C = GO) ? ou parcourir tout le tableau et envoyer en mail dès que la cellule en C contient GO ?

Bonjour,

Merci de votre réponse.

Ce que je veux c'est double cliqué sur la colonne D et envoyé un mail si il y a GO pour la colonne C, seulement pour la ligne ou il y a GO pas pour toutes les lignes.

Et dès que c'est cliqué, mettre la ligne ou il y avait GO en FIN.

J'espère être clair :(.

Merci à vous.

Oui, c'est clair. Maintenant, ce qu'il reste à déterminer, c'est l'envoi du mail, qui dépend donc de la cellule cliquée !

Voici un prototype de code en attendant des précisions...

'CODE A PLACER DANS LE MODULE DE LA FEUILLE CONCERNEE PAR LES DOUBLE-CLICS
Private Sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)
Cancel = True 'annule l'effet du double-clic
If not intersect(target, range("D:D")) is nothing then 'si la target se trouve en colonne D
    if target.offset(0,-1).value = "GO" then 'si la cellule à gauche de la target vaut "GO"
        Call EnvoyerMail(target) 'exécuter macro EnvoyerMail
    end if
end if
End sub

'CODE A PLACER DANS UN MODULE NORMAL (MENU DE VISUAL BASIC/INSERTION/MODULE)
Sub EnvoyerMail(Cible as range)

Dim oOutlook As Object
Dim oMail As Object
Dim destTo$, destCC$, Sujet$, Corps$, Dossier$, Fichier$

Set oOutlook = CreateObject("Outlook.Application") 'Instanciation Outlook
Set oMail = oOutlook.CreateItem(0) 'création mail

destTo = "xxx@yy.fr" 'mail du destinataire
destCC = "zzz@yy.fr" 'mail du destinataire en copie
Sujet = Cible.offset(0,-3).value & " " & Cible.offset(0,-2).value 'sujet reprenant valeur A2 et B2 quand double-clic sur D2
Corps = "Bonjour," & chr(10) & chr(10) 'corps du mail
Corps = Corps & "Ce mail pour traiter de :" & chr(10)
Corps = Corps & "- l'envoi de mails suite à un double-clic."
Corps = Corps & chr(10) & chr(10) & "Cordialement,"
Dossier = thisworkbook.path & "\" 'répertoire de l'éventuelle PJ
Fichier = "nomdufichier.pdf" 'nom de l'éventuelle PJ

With oMail 'avec le mail > on affecte les valeurs de nos variables aux propriétes du mail
    .To = destTo
    .CC = destCC
    .Subject = Sujet
    .body = Corps
    .Attachments.Add Dossier & Fichier
    .display 'pour voir avant envoi
    '.send 'pour envoi direct
End With

Cible.offset(0,-1).value = "FIN" 'passe C2 à "FIN"

End sub

Cdlt,

Bonjour,

Merci beaucoup pour l'aide, le code est juste nickel !

Une question encore ce sera bon, est ce que l'on peut mettre de la couleur / gras / italique dans le corps du mail pour certaines lignes:

Corps = Corps & "- l'envoi de mails suite à un double-clic."

Est ce que c'est un htmlbody?

Et après je ne vous embête plus !

Merci beaucoup

Bonjour,

Je crois qu'il est possible de le faire aussi avec la propriété .body mais, en effet, .HTMLBody est plus indiqué. Dans ce cas, il faut ajouter des balises de code HTML :

Corps1 = "<html><body>Bonjour,<br>" 'corps du mail
Corps2 = "<br>Ce mail pour traiter de :"
Corps3 = "<br><b><i>la mise en forme en <font size="11pt" face="arial" color="blue">HTML</font></i></b>"
Corps4 = "<br><br>Cordialement,</html></body>"
Corps = Corps1 & Corps2 & Corps3 & Corps4

Avec

<br> pour les sauts de ligne 'ne nécessite pas de balise fermante
<b> pour gras
<i> pour italique
<u> pour souligner
<font> pour agir sur le format de texte
font 'a plusieurs propriétés, dont notamment :
size pour la taille
face pour la police
color pour la couleur

J'ai cependant un petit doute sur l'utilisation de size car il y a plusieurs façons de faire. Il faudra peut-être vous renseigner davantage.

Et ensuite, vous remplacer

.body = Corps

'par

.HTMLBody = Corps

Cordialement,

Merci bien, c'est parfait !

Bonne journée et merci encore.

Ah dernière question, si j'ai une image dans une cellule, est ce qu'elle peut être copier dans le corps de mail?

Merci bien.

Je crois que oui mais je ne saurais pas vous répondre correctement donc je vous invite à ouvrir une nouvelle conversation pour traiter spécifiquement de ce sujet.

Vous êtes à un poil du travail accompli là .

Bonne continuation,

Merci !!!!

Bonne journée !

Rechercher des sujets similaires à "envoi mail double clic gauche"