Recherche spéciale vba [Résolu/Fermé]

Signaler
-
Messages postés
16178
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 août 2020
-
Bonjour,

je but sur un petit problème :
J'ai dans la colonne A :
case 1 : LEFT-A1
case 2 : AUTRES
case 3 : LEFT-A2
case 4 : BIBI

Mon objectif est de rechercher dans la colonne A, le mot "LEFT" dans les chaines de caractères. Problème left est une fonction d'excel.

Voici mon début :
for i = 1 to 4
If Cells(i,1) = .Find(LEFT- & "*", LookIn:=xlValues) Then
'Si LEFT trouvé. Mettre en gras la case' (non détaillé)
end if
next i


Merci d'avance à vous

Bonne journée

4 réponses

Messages postés
23428
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2020
6 292
Bonjour,

Mais tu recherche la chaine "LEFT-" :
.Find("LEFT-*", ...

Par contre pas sûr que .find accepte l'*

eric
Messages postés
538
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
8 janvier 2018
86
Pourquoi n'utilises-tu pas la fonction MID?
Messages postés
538
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
8 janvier 2018
86
ou alors Pos = InStr(1, chaine, souschaine, 0) qui va te renvoyer la position de ta sous-chaine dans ta chaine, s'il la trouve?
Je ne peux pas utiliser MID, parce que la longueur du mot cherché peut varier
Messages postés
538
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
8 janvier 2018
86
Oui mais InStr tu peux puisqu'il cherche une sous-chaine
je vais faire des tests merci
Messages postés
16178
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 août 2020
3 005
Bonjour

Sub trouver_left() 
Dim Nbre As Integer, Lig As Long, cptr As Integer 

Nbre = Application.CountIf(Columns(1), "left-" & "*") 
If Nbre = 0 Then GoTo vide 

Application.ScreenUpdating = False 
Lig = Cells.Rows.Count 
For cptr = 1 To Nbre 
     Lig = Columns(1).Find("LEFT-", Cells(Lig, 1), , xlPart).Row 
     Cells(Lig, 1).Font.Bold = True 
Next 
Exit Sub 

vide: 
MsgBox "Aucun préfixe ""LEFT-"" existant", vbCritical 
End Sub 


Michel
Je suis arrivé à quelques chose, voici le code :

Sub test()
For i = 1 To 12
test1 = InStr(1, Cells(i, 1).Value, "LEFT-", vbTextCompare)
'ACTION (if test1=1 then ....)
Next i
End Sub

test1 me donne la valeur 1 quand il trouve LEFT- dans la cellule cible et 0 quand il ne trouve pas. De la je peux utiliser cette variable pour la suite !

Merci à vous :D vous m'épater par la rapidité des réponses

à bientot
Messages postés
16178
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 août 2020
3 005
Dubol, merci d'avoir complètement snobé ma proposition; je m'en souviendrai, crois moi,