[VBA]Rechercher dans une chaîne suivant critèe

RENAUDER

Nous a quitté
Repose en paix
Bonjour,

(En VBA)
Je balaye une liste de noms et parmi ceux-ci je dois en éliminer.
J'ai regardé du coté de LIKE mais je ne vois de solution.

Ex. Je dois garder tous ceux qui ont un contenu (consécutif ) contenant BOI

En bleu, les composants que je dois éliminer ...

BOITIER
PRISE BOITIER
BAGUE
BOIT F
BOL
BOI CC
 

Dull

XLDnaute Barbatruc
Re : [VBA]Rechercher dans une chaîne suivant critèe

Salut Eric:), le Forum

Peut-être comme ça

Code:
Sub BOIORNOTBOI()
Dim C As Range
For Each C In Range("A1:A" & Range("A65536").End(xlUp).Row)
    If Not C Like "*BOI*" Then C.Delete
Next C
End Sub
En espérant avoir bien compris

Bonne Journée
 

RENAUDER

Nous a quitté
Repose en paix
Re : [VBA]Rechercher dans une chaîne suivant critèe

Bonjour Dull,
J'avais réussi à trouver cela:

If Not (Chaine) Like "*BOI[T]*" Then MsgBox "OK"

Ce qui est finalement proche de ta solutionmais + compliqué (c'est d'après l'aide de LIKE que j'ai extrapolé)

La tienne fonctionne mais il faut encadrer avec des guillemets doubles
soit "*BOI*"
 

Nioubie

XLDnaute Nouveau
Re : [VBA]Rechercher dans une chaîne suivant critèe

Bonjour Éric, Dull, bonjour le forum,

Autre possibilité :
Code:
If InStr(1, cel.Value, "BOI") = 0 Then ...

Bonjour,
J'ai le problème suivant qui semble correspondre à cette solution.
ma macro se heurte à l'"erreur 13" qui j'ai remarqué correspondre avec un caractère spécial lu dans la variable à importer.
il s'agit "d'une sorte d'apostrophe" qui correspond au caractère 180.

donc je souhaiterais pouvoir remplacer ce caractère par l'apostrophe normal.

dans cette equation, il faudrait que je remplace "BOI" par "´",
mais je ne sais pas écrire la suite : then ?? replace (????, by "'")
Aussi, je ne sais pas ou placer cette equation, avant l'appel de cette variable,
ou dans le tableau des DIM ?

vous l'aurez compris , je débute totalement en VBA, j'en suis simplement à "réparer" un script pour qu'il fonctionne.
Merci d'avance pour votre aide,
Cordialement :)
 

Modeste

XLDnaute Barbatruc
Re : [VBA]Rechercher dans une chaîne suivant critèe

Bonsoir Nioubie,

Si j'ai bien compris, ta question ... Ceci devrait donner le résultat attendu
Code:
If InStr(1, C.Value, Chr(180)) > 0 Then C.Replace what:=Chr(180), replacement:="[COLOR="Red"][SIZE="3"][B]'[/B][/SIZE][/COLOR]"
 

Nioubie

XLDnaute Nouveau
Re : [VBA]Rechercher dans une chaîne suivant critèe

Merci c'est probablement la solution,
mais je n'arrive pas à la placer dans mon script.
Problème de END IF, même si je le rajoute...

voici la partie du code concernée :

wbkRecup.Worksheets(3).Cells(iLigne, 3) = MaVariable

erreur quand j'écris comme ça :

**********************************************************
If InStr(1, MaVariable, Chr(180)) > 0 Then C.Replace what:=Chr(180), replacement:="'"
wbkRecup.Worksheets(3).Cells(iLigne, 3) = MaVariable
End If
**********************************************************

Merci encore :)
 

Modeste

XLDnaute Barbatruc
Re : [VBA]Rechercher dans une chaîne suivant critèe

Bonjour Nioubie, le forum,

D'où vient le 'C' dans
Then C.Replace ...

Replace s'applique à un objet Range. Tu devrais donc écrire quelque chose comme:
Code:
If InStr(1, Sheets(3).Cells(iLigne, 1), Chr(180)) > 0 Then Sheets(3).Cells(iLigne, 1).Replace what:=Chr(180), replacement:="'"
 

Statistiques des forums

Discussions
311 720
Messages
2 081 917
Membres
101 839
dernier inscrit
laurentEstrées