Recherche spéciale vba

Résolu
dubol -  
michel_m Messages postés 18903 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

4 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

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

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

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