Recherche avec macro définir une zone de rech

lucasp Messages postés 14 Statut Membre -  
Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   -
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 ?

A voir également:

2 réponses

Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   954
 
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
lucasp Messages postés 14 Statut Membre 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
Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   954
 
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