VBA - Methode Find

Bonjour à tous,

je programme des macros en VBA sur Excel 2003, et aimerais avoir un peu d'aide concernant la méthode "Find".
J'utilise actuellement un code qui me permet de chercher dans la colonne L et d'activer la cellule contenant la valeur demandée (chosiie dans un ComboBox). La cellule est ensuite supprimée, ainsi que les 3 qui se trouvent à sa droite. Cela donne ceci :

X = ComboBox1.Value
With Range("L:L")
Set c = .Find(X, , xlValues, xlWhole, xlByColumns)
c.Activate
End With
ActiveCell.Offset(0, 3).Delete
ActiveCell.Offset(0, 2).Delete
ActiveCell.Offset(0, 1).Delete
ActiveCell.Delete


le problème, c'est qu'il ne cherche pas la valeur excate.. Par exemple, si vous lui demandez de chercher la valeur "voiture", et que vous avez dans la colonne L les valeurs, entre autres, "voiture" et "voiture de sport", les 2 vont être supprimées.. Je souhaiterais que seule la valeur exacte (donc "voiture") le soit.

Quelqu'un peut-il me donner un coup de main?

D'avance merci pour vos réponses,

Cordialement

2 réponses

  1. Bonjour,

    ou alors simplement un test de longueur de chaine de caractère :

    if len(X)=len(c.value) then c.activate

    ++
    0
    1. Contributeur
      Bonjour,
      Essaye avec cette macro à mettre dans le module de la feuille.
      Option Explicit
      Dim Chercher As String
      
      Sub Supprime()
      Dim Lig As Long, DerLig As Long
      Chercher = "Voiture"
          DerLig = Range("L65535").End(xlUp).Row
          For Lig = DerLig To 1 Step -1 ' 1 = première ligne de la recherche
              'UCase c'est pour ne pas tenir compte de la case maju ou minus
              If UCase(Cells(Lig, "L")) = UCase(Chercher) Then
                  Range(Cells(Lig, "L"), Cells(Lig, "O")).Delete Shift:=xlUp
                  Lig = Lig - 1
              End If
          Next Lig
      End Sub

      Tu dois bien sûr, initialiser Chercher quelque part .
      A+
      0