[Excel] Fonction de recherche sur un fichier
yy
-
yy -
yy -
Bonjour,
J'avais demandé de l'aide pour effectuer une recherche d'une valeur ou données sur un fichier et on m'avait donné une explication qui fonctionne la voici :
Sub recherche()
Dim rngTrouve As Range
Static strChaine As String
Static Ligne As Long
If Ligne = 0 Then
strChaine = InputBox("Nom à rechercher :")
If strChaine = "" Then Exit Sub
Ligne = 1
End If
For Each rngTrouve In Range("A" & Ligne & ":A" & [A65536].End(xlUp).Row + 1)
If LCase(rngTrouve.Text) = LCase(strChaine) Then
rngTrouve.Activate
Ligne = rngTrouve.Row + 1
Exit Sub
End If
Next
MsgBox "Plus d'occurence ou pas trouvé"
Ligne = 0
Set rngTrouve = Nothing
End Sub
Bref j'ai bien testé le code etc il fonctionne ok mais simplement pour la colonne A du fichier, si je recherche le mot ' test' il le trouvera en A1 A 2 A 3 A5 mais pas en B1 par exemple
Je vois bien que le soucis vient de :
For Each rngTrouve In Range("A" & Ligne & ":A" & [A65536].End(xlUp).Row + 1)
Mais comment parcourir alors tout le fichier colonne par colonne? je vais faire une trentaine de for each pour chaque colonne quand même..
Merci
J'avais demandé de l'aide pour effectuer une recherche d'une valeur ou données sur un fichier et on m'avait donné une explication qui fonctionne la voici :
Sub recherche()
Dim rngTrouve As Range
Static strChaine As String
Static Ligne As Long
If Ligne = 0 Then
strChaine = InputBox("Nom à rechercher :")
If strChaine = "" Then Exit Sub
Ligne = 1
End If
For Each rngTrouve In Range("A" & Ligne & ":A" & [A65536].End(xlUp).Row + 1)
If LCase(rngTrouve.Text) = LCase(strChaine) Then
rngTrouve.Activate
Ligne = rngTrouve.Row + 1
Exit Sub
End If
Next
MsgBox "Plus d'occurence ou pas trouvé"
Ligne = 0
Set rngTrouve = Nothing
End Sub
Bref j'ai bien testé le code etc il fonctionne ok mais simplement pour la colonne A du fichier, si je recherche le mot ' test' il le trouvera en A1 A 2 A 3 A5 mais pas en B1 par exemple
Je vois bien que le soucis vient de :
For Each rngTrouve In Range("A" & Ligne & ":A" & [A65536].End(xlUp).Row + 1)
Mais comment parcourir alors tout le fichier colonne par colonne? je vais faire une trentaine de for each pour chaque colonne quand même..
Merci
A voir également:
- [Excel] Fonction de recherche sur un fichier
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fonction si et excel - Guide
- Fichier rar - Guide
3 réponses
Bonjour,
As tu au moins essayé de changer quelque chose dans la ligne :
Essaye, par pur hasard ceci :
As tu au moins essayé de changer quelque chose dans la ligne :
For Each rngTrouve In Range("A" & Ligne & ":A" & [A65536].End(xlUp).Row + 1)
Essaye, par pur hasard ceci :
For Each rngTrouve In Range("A" & Ligne & ":Z" & [A65536].End(xlUp).Row + 1)
pas vu de réponse quand j'ai commencé à répondre
Pour comprendre comment fonctionne le For Each, essaye cette procédure de test :
Sub Essai() Dim rngTrouve As Range Static Ligne As Long Ligne = 1 For Each rngTrouve In Range("A" & Ligne & ":C" & 2) MsgBox rngTrouve.Address Next End SubFor Each rngTrouve In Range("A" & Ligne & ":Z" & [A65536].End(xlUp).Row + 1)
Avec ce bout de code il devrait donc effectivement parcourir l'ensemble du fichier, quand je teste ton code il m'affiche bien le msgbox mais quand je teste ce dernier avec : Z il ne passe pas par B1 pour vérifier la valeur pourquoi?
Il va le trouver partout sauf dans B1 et B2