XL 2016 Ne pas lancer une macro suivant info cellule

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 !

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,
 
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

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.
 
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

- 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
2
Affichages
715
Réponses
1
Affichages
987
Réponses
1
Affichages
1 K
Retour