[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
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fonction si ou excel - Guide
- Trier un tableau excel - Guide
- Comment imprimer un fichier excel - Guide
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