VBA - Methode Find

RussellD Messages postés 60 Statut Membre -  
 superip69 -
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. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. superip69
     
    Bonjour,

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

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

    ++
    0