[Déplacé .Net --> VBA] Problème utilisation .Find()

cs_hadria Messages postés 2 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 4 novembre 2009 - 4 nov. 2009 à 11:09
cs_hadria Messages postés 2 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 4 novembre 2009 - 4 nov. 2009 à 11:29
Bonjour,

j'aurais besoin d'aide car j'ai un problème en utlisant .Find()

J'utilise cette fonction pour aller chercher des informations dans une base de données, en utilisant comme critère de recherche un Id number, sauf que lorsque je donne un ID Number qui est contenu dans un autre (ex 6445 contenu dans 26445) j'obtiens les infos concernant quelqu'un d'autre.

Mon code est simple et est le suivant:

With ActiveWorkbook.Worksheets("Sheet1").Range("$B:$B")
   Set f = .Find(IDNumber)
End With

f.EntireRow.Copy



Quelqu'un connaitrai-il la solution?
Merci d'avance

2 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
4 nov. 2009 à 11:26
il s'agit donc de VBA si j'en crois ton bout de code : il suffit de préciser que tu cherches le mot entier dans les propriétés de la fonction. Un petit coup d'enregistreur de macro + F1 pour obtenir la syntaxe :
.Find(What:=IDNumber,,LookAt:=xlWhole)

Molenn
0
cs_hadria Messages postés 2 Date d'inscription mercredi 4 novembre 2009 Statut Membre Dernière intervention 4 novembre 2009
4 nov. 2009 à 11:29
Merci, j'aurais du y penser.

Je venais de trouver une solution fait maison:

With ActiveWorkbook.Worksheets("Sheet1").Range("$B:$B")
   Set f = .Find(IDNumber)
End With

f.EntireRow.Copy

test = CLng(f.Value) - CLng(IDNumber)
    
    While test > 0
        adr = f.Offset(1, 0).Address
        adresse = adr & ":$B65356"
        With ActiveWorkbook.Worksheets("Sheet1").Range(adresse)
            Set f = .Find(IDNumber)
        End With
        test = CLng(f.Value) - CLng(IDNumber)
    Wend
0
Rejoignez-nous