Recherche spéciale vba

Résolu/Fermé
dubol - 16 nov. 2011 à 09:08
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 16 nov. 2011 à 11:05
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

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié par eriiic le 16/11/2011 à 09:13
Bonjour,

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

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

eric
0
Heremion Messages postés 539 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
16 nov. 2011 à 09:21
Pourquoi n'utilises-tu pas la fonction MID?
0
Heremion Messages postés 539 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
16 nov. 2011 à 09:24
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
Je ne peux pas utiliser MID, parce que la longueur du mot cherché peut varier
0
Heremion Messages postés 539 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
16 nov. 2011 à 10:20
Oui mais InStr tu peux puisqu'il cherche une sous-chaine
0
je vais faire des tests merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 16/11/2011 à 09:46
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 nov. 2011 à 11:05
Dubol, merci d'avoir complètement snobé ma proposition; je m'en souviendrai, crois moi,
0