Recherche avec macro définir une zone de rech

Bonjour,

J'utilise une macro pour faire une recherche dans mon tableau.

J'aimerais que ma recherche recherche seulement dans une section de cellules : A9:A108
au lieu de chercher dans tout la feuille complète.

Cells.Find(What:=Cells(6, 1).Value, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False).Activate


J'ai essayé de changer le contenu de : After:=ActiveCell
Mais je ne sais pas sous quel format l'inscrire ?
Peut-être dans LookIn ?

Est-ce que c'est faisable au moins ?

2 réponses

  1. Contributeur
    Salut le forum

    Le principe de base de Cells.Find

    Dim c As Range
    
    With Worksheets(1).Range("a1:a365") 
        Set c = .Find(Date, LookIn:=xlValues) 
        If Not c Is Nothing Then 
            Cells(c.Row, c.Column).Select 
        End If 
    End With

    Mytå
    Merci de donner suite à votre question, nous ne sommes pas des robots...
    Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
    0
    1. Merci pour la réponse,

      J'ai essayé plusieurs choses, mais ca ne fonctionne pas...
      je n'ai pas réussi à créé la variable "c".

      et ca me donne toujours une erreur...

      C'est quoi "Set" fait ?
      0
      1. Contributeur
        Re le forum

        L'instruction Set permet d'attribuer une référence d'objet à la variable.

        Dans Excel, un objet peut être un classeur, les feuilles de calcul, un graphique...etc...
        La macro suivante déclare la variable Ws comme un objet de type Worksheet (Feuille de cacul).
        Sub Essai_01()
            Dim Ws As Worksheet
        
            'Attribue la 1ere feuille du classeur dans la variable    
            Set Ws = Sheets(1)
            MsgBox Ws.Name
        
            Set Ws = Nothing 'Libère la mémoire   
        End Sub

        Vous pouvez aussi utiliser la syntaxe ci-dessous.
        Nota: Vous perdez l'avantage de la saisie semi automatique en utilisant cette méthode.
        Sub Essai_02()
            Dim Ws As Object
        
            'Attribue la 1ere feuille du classeur dans la variable     
            Set Ws = Sheets(1)
            MsgBox Ws.Name
            
            Set Ws = Nothing 'Libère la mémoire    
        End Sub

        Mytå
        0