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

RENAUDER

XLDnaute Accro
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

XLDnaute Accro
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*"
 

Robert

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

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:="'"
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas