XL 2016 Ne pas lancer une macro suivant info cellule

Nikoko

XLDnaute Nouveau
Bonjour à tous,

J'utilise le code ci-dessous pour envoyer un mail via excel en fonction des critères d'une ligne.
Je souhaiterai que si dans la colonne K, il y a le texte "envoyé", que la macro se bloque et n'envoie pas le mail.

Avez-vous une idée?

VB:
'************Envoyer les mails via outlook
Private Sub CommandButton1_Click()

Dim LeMail As Variant
Dim ligne As Integer

Set LeMail = CreateObject("Outlook.Application") 'création d'un objet outlouk

For ligne = 6 To 9

    If Range("j" & ligne) = "Validé" Or Range("j" & ligne) = "Recu" Then 'critère des cellules pour envoyer le mail

        With LeMail.CreateItem(olMailItem) ' informe le programme que nous voulons envoyer un mail.
            .Subject = Range("A" & ligne) & Range("D11") 'le sujet + le nom
            .To = Range("D" & ligne) 'placer l'adresse mail de la ligne
            .CC = "marielle@xxxxx.fr" 'placer l'adresse mail en copie
            .Body = Range("D13") & Range("A" & ligne) & Range("F11") & Range("b" & ligne) & Range("D15") 'placer message dans le mail
            .Attachments.Add "C:\Users\xxxxxxx\Desktop\signature.JPG" 'joindre l'image de la signature
            .HTMLBody = .HTMLBody & "<br><img src='cid:signature.JPG' width='700' height='350'><br>" 'Placer l'image de la signature
            .Display 'afficher le mail avant de l'envoyer sinon placer send pour envoyer
          End With
    End If
Next ligne

End Sub

J'ai essayé avec :
Code:
 If Range("k" & ligne) = "envoyé" and not Range("j" & ligne) = "Validé" Or Range("j" & ligne) = "Recu" Then
mais cela ne fonctionne pas.

Merci par avance,
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Nikoko,
Vous dites : "Je souhaiterai que si dans la colonne K, il y a le texte "envoyé", que la macro se bloque et n'envoie pas le mail."
et vous faites le contraire :
VB:
If Range("j" & ligne) = "Validé" ... then j'envoie un mail.
Le mieux est de faire un petit fichier test comme en PJ. Ca permet de cibler le problème et le résoudre .
Ca marche avec :
Code:
If LCase(Range("k" & ligne)) <> "envoyé" And Range("j" & ligne) <> "Validé" Or Range("j" & ligne) = "Recu" Then
Le Lcase met tout en minuscules donc accepte "envoyé", "Envoyé" ...
 

Pièces jointes

  • Nikoko.xlsm
    15.6 KB · Affichages: 20

Nikoko

XLDnaute Nouveau
Bonjour Sylvanu,

Avant tout je te remercie pour ton aide.
Merci pour cette info sur les minuscules en Lcase 👍.

Est-ce que le Lcase fonctionne avec des chiffres?

Tu as raison avec un exemple c'est mieux. Voici le résultat que je cherche à obtenir :
1608822341003.png


Je n'arrive pas à adapter ta macro.
Quand je remplace des chiffres plus rien ne fonctionne.

Merci par avance.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Nikoko,
Est-ce que le Lcase fonctionne avec des chiffres?
C'est quoi un chiffre en minuscules ? Non Lcase ne marche pas pour les nombres.
En PJ, un autre essai.

Je vous souhaite de "belles" fêtes si tant est que ce soit possible, et surtout une très bonne santé à vous et aux vôtres.
 

Pièces jointes

  • Nikoko2.xlsm
    16 KB · Affichages: 13

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 140
Membres
112 669
dernier inscrit
Guigui2502