Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 vba si cellule ne contient pas un mot dans un texte

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous et à tous,

je butte sur un nouveau souci
Malgré mes recherches et tentatives, je n'ai pas trouvé le bon code.

J'ai besoin, en vba, de tester si une cellule contient ou ne contient pas un mot.

Pour tester si la cellule contient le mot, pas de souci :
VB:
Sub contient()
If [f7].Value Like "*OK*" Then
    [h7] = "F7 contient OK"
End If
End Sub

C'est si NE contient PAS qui me pose problème
Code:
Sub ne_contient_pas()
If [f14].Value Like "*OK*" Then
    [h14] = "F14 NE contient PAS OK"
End If
End Sub

Je n'arrive pas à modifier "If [f14].Value Like "*OK*" Then" pour coder "si ne contient pas "*OK*"
Auriez-vous la solution ?
Je joins un fichier test.

Un grand merci à vous toutes et tous,
Je vous souhaite une belle journée,
Amicalement,
arthour973
 

Pièces jointes

  • cellule_contient_mot_ou pas.xlsm
    17.5 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour Lionel,

On peut aussi utiliser la fonction CHERCHE (la casse est ignorée) :
VB:
Sub OK()
[H14] = IIf([ISERROR(SEARCH("OK",F14))], "F14 ne contient pas OK", "F14 contient OK")
End Sub
A+
 

Victor21

XLDnaute Barbatruc
Bonjour, arthour973.

Je n'ai pas testé
Code:
Sub ne_contient_pas()
If not [f14].Value Like "*OK*" Then
    [h14] = "F14 NE contient PAS OK"
End If
End Sub
Trop simpliste ?

Edit : Bonjour Gérard
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour,

ça ne fonctionne pas dans mon classeur mais c'est certainement de ma faute LOL.
J'ai voulu faire un fichier test mais en fait, j'aurais peut-être du commencer par vous envoyer
le morceau de code que je souhaite modifier dans mon classeur :
VB:
If Not Target Like ("www*") Then
   Else
   Target = ""
   MsgBox ("Vous avez copié le lien : C'est l'annonce qui est à copier dans cette cellule !" & nbcel)
   Target.Offset(0, 1).Select
   Application.EnableEvents = True
   Application.ScreenUpdating = True
   ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
   ActiveSheet.EnableSelection = xlNoRestrictions
   formules_suivisappels
end if

J'ai besoin de modifier cette ligne "If Not Target Like ("www*") Then" pour que :
- si pas de "www" dans la cellule, passe à la ligne "end if",
- si "www" contenu dans la cellule il passe à la ligne "else"

Un grand merci pour votre patience
lionel,
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

J'ai été très occupé et je suis très fatigué LOl.

J'ai péniblement refait un fichier test pour expliquer mieux ce qui ne va pas.
Je le joins.
Encore merci vraiment de ta patience
lionel,
 

Pièces jointes

  • cellule_contient_mot_ou pas.xlsm
    18.7 KB · Affichages: 9

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Gérard,
Bonjour à toutes et à tous,

En fait, j'y suis presque. C'est uniquement le contrôle de la col R qui ne fonctionne pas si le lien a été copié au lieu de l'annonce.

Il devrait écrire : c'est l'annonce qu'il faut copier en col R
alors qu'il m'écrit : annonce OK
comme si l'annonce y était.
Je continue à chercher

Bonne journée à toutes et à tous,
Amicalement,
lionel,
 

Discussions similaires

Réponses
5
Affichages
195
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…