A voir également:
- Vba rechercher une valeur dans une colonne
- Excel vba rechercher une valeur dans une colonne - Meilleures réponses
- Vba find valeur exacte - Meilleures réponses
- Méthode find dans VBA - Recherche de données sous Excel - Conseils pratiques - Visual Basic
- [vba] recherche d'une valeur EXACTE ✓ - Forum - VB / VBA
- Macro, excel, rechercher une valeur ✓ - Forum - Programmation
- EXCEL VBA - recherche d'une valeur ✓ - Forum - Excel
- Chercher une valeur dans une colonne précise ✓ - Forum - VB / VBA
6 réponses
tompols
- Messages postés
- 1219
- Date d'inscription
- jeudi 29 juillet 2004
- Statut
- Contributeur
- Dernière intervention
- 25 novembre 2013
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
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
Signaler
hich24
- Messages postés
- 1596
- Date d'inscription
- mardi 2 octobre 2007
- Statut
- Membre
- Dernière intervention
- 21 décembre 2020
merci
Signaler
Florian
Merci !
Signaler
Cdric
Top, merci !
Signaler
Mimi
Merci ligne de code très utile !
cel92
- Messages postés
- 28
- Date d'inscription
- mercredi 13 février 2008
- Statut
- Membre
- Dernière intervention
- 16 décembre 2008
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.
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.
cel92
- Messages postés
- 28
- Date d'inscription
- mercredi 13 février 2008
- Statut
- Membre
- Dernière intervention
- 16 décembre 2008
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 !
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 !
jokair8
- Messages postés
- 14
- Date d'inscription
- mercredi 20 août 2008
- Statut
- Membre
- Dernière intervention
- 30 septembre 2010
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'
@+
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'
@+
cel92
- Messages postés
- 28
- Date d'inscription
- mercredi 13 février 2008
- Statut
- Membre
- Dernière intervention
- 16 décembre 2008
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)
Essaye avec find(today, lookin:= xlValues, lookat:= xlWhole)