Recherche spéciale vba

Résolu
dubol -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

4 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

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

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

eric
0
Heremion Messages postés 538 Date d'inscription   Statut Membre Dernière intervention   102
 
Pourquoi n'utilises-tu pas la fonction MID?
0
Heremion Messages postés 538 Date d'inscription   Statut Membre Dernière intervention   102
 
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?
0
dubol
 
Je ne peux pas utiliser MID, parce que la longueur du mot cherché peut varier
0
Heremion Messages postés 538 Date d'inscription   Statut Membre Dernière intervention   102
 
Oui mais InStr tu peux puisqu'il cherche une sous-chaine
0
dubol
 
je vais faire des tests merci
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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
0
dubol
 
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
-2
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
Dubol, merci d'avoir complètement snobé ma proposition; je m'en souviendrai, crois moi,
0