|
|
|
|
Configuration: Windows XP Internet Explorer 6.0
Bonjour cel92,
Il suffit d'enlever la partie " LookIn:=xlValues" de ton code. |
Malheureusement, ça ne recherche toujours pas la valeur exacte, mais la valeur contenue.
Ce petit programme test le prouve : "Public Sub test() Dim numéro As Integer Dim celluletrouvee As Range Dim ligne As Integer Dim col As Integer numéro = 8 Set celluletrouvee = Range("A1:A5").Find(numéro) ligne = celluletrouvee.Row col = celluletrouvee.Column MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & col) End Sub " Car elle renvoit les coordonnées d'une cellule contenant le nombre 48, alors que je recherche le nombre 8 ! |
Bonjour,
La méthode Find admet un argument facultatif de type variant "Lookat", les valeurs possibles sont xlWhole ou xlPart... En reprenant ton exemple, ça fait : Public Sub test() Dim numéro As Integer Dim celluletrouvee As Range Dim ligne As Integer Dim col As Integer numéro = 8 Set celluletrouvee = Range("A1:A5").Find(numéro, lookat:=xlWhole) If celluletrouvee Is Nothing Then MsgBox ("pas trouvé") Else ligne = celluletrouvee.Row col = celluletrouvee.Column MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & col) End If End Sub |
Merci beaucoup !
l'argument lookat:=xlWhole permet effectivement de rechercher une valeur exacte, à opposer à lookat:=xlPart qui permet de rechercher une valeur contenue dans la cellule ou la feuille, par défaut en absence d'argument. |
Bonjour,
Dans une feuille excel, je cherche à trouver selctionner la cellule contenant la date d'aujourd'hui en cliquant sur une CommandBox: Voici le code que j'ai mis: Code : Private Sub cmd_today_Click() Dim today As Date Dim celluletrouvee As Range Dim ligne As Integer Dim colonne As Integer today = Date Set celluletrouvee = Range("D3:HE3").Find(today, lookat:=xlWhole) If celluletrouvee Is Nothing Then MsgBox ("pas trouvé " + Chr(13) + Str(Date)) Else ligne = celluletrouvee.Row col = celluletrouvee.Column MsgBox ("trouvé : ligne = " & ligne & " , colonne = " & colonne) celluletrouvee.Select End If End Sub Mais, la fonction utilisée ne me trouve aucune cellule (alors que bien sur, il y a une cellule qui contient la date du jour...) Par contre, cette cellule est une formule (=case de gauche +1) Merci pour vos contrib' @+ |
Quand tu utilises la méthode find parmi des formules, il faut lui préciser si tu veux comparer ton string avec les formules ou avec leurs résultats :
Essaye avec find(today, lookin:= xlValues, lookat:= xlWhole) |
Résultats pour [vba] recherche d'une valeur EXACTE
Résultats pour [vba] recherche d'une valeur EXACTE
Résultats pour [vba] recherche d'une valeur EXACTE
Résultats pour [vba] recherche d'une valeur EXACTE