Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
à partir d'un tableau de critère, j'aimerais être capable de faire une recherche soit par un nombre ou un mot et qui se retrouve dans une cellule.
Ma recherche se fait dans une feuille nommé recherche, que l'information rechercher se trouve dans un autre feuille (base de donnée) et que le résusltat de ma recherche filtré se retrouve dans ma première feuille.
Voici un exemple de recherche:
à partir d'un critère de recherche ex.: Q56.500 OU 170.0
je recherche dans ma base de donnée cette information et que toutes les résultat de ma réponses se retrouvent dans ma première feuille.
Voici le texte ou je veux trouver l'information:
170,0Q56,500Ø07,026_650-008-W-113-02.
Je sais qu'il y a un filtre textuel avec l'option contient. je peux le faire manuellement, mais j'aimerais l'intégrer dans une macro. De cette façon je peux recommencer une nouvelle recherche à chaque fois.
Est-ce qu'il y a quelqu'un qui aurait une solution. Tout déveleppement serait très apprécié.
Sub trouver_texte()
With Sheets("base de donnée")
.Cells.Select
Selection.Find(What:="170,0", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End With
MsgBox " La cellule " & ActiveCell.Address & " contient le texte recherché !"
End Sub
Si tu utilises un filtre automatique, crée unemacroapprentissage (Menu Outils>>Macro>>Nouvelle macro) et fais un exemple. Mets le code sur un poste et on t'aidera à l'améliorer pour avoir ce que tu veux
A+
Sub trouver_texte()
With Sheets("base de donnée")
.Cells.Select
Selection.Find(What:="170,0", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End With
MsgBox " La cellule " & ActiveCell.Address & " contient le texte recherché !"
End Sub
Sub trouver_texte()
Dim texte As String
texte = InputBox("valeur a rechercher")
With Sheets("base de données").Select
Selection.Find(What:=texte, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End With
MsgBox " La cellule " & ActiveCell.Address & " contient le texte recherché !"
End Sub
Sub trouver_texte()
Dim texte As String
texte = InputBox("valeur a rechercher")
With Sheets("base de données").Select
Selection.Find(What:=texte, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End With
MsgBox " La cellule " & ActiveCell.Address & " contient le texte recherché !"
End Sub
Essaie le fichier (test de filtrage.xls) que je t'ai laisser et de faire afficher la réponse dans la feuille de critere. Regarde l'exemple que j'ai écris. Il faut que je sois en mesure peut importe le critere de recherche de trouver la réponse dans la base de données et de faire afficher cette réponse dans la première feuille.
Dit-toi que j'ai une base de données d'environ 5000 lignes. Il se peut que j'ailles des réponse multiples.
Je reviens demain, si tu as des questions je vais y répondre demain.
la ,le code avec la réponse dans la feuille critère
Code:
Sub trouver_texte()
Dim texte As String
Dim ligne, repaire As Long
texte = InputBox("valeur a rechercher")
With Sheets("base de données").Select
Selection.Find(What:=texte, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End With
MsgBox " La cellule " & ActiveCell.Address & " contient le texte recherché !"
ligne = ActiveCell.Row
Worksheets("base de données").Range(Cells(ligne, 1), Cells(ligne, 12)).Copy
repaire = Sheets("Criteres").Range("c5000").End(xlUp).Row
Sheets("Criteres").Activate 'Range("c" & repaire + 1).Paste
ActiveSheet.Paste Destination:=Worksheets("Criteres").Range("c" & repaire + 1 & ":" & "o" & repaire + 1)
End Sub
la ,le code avec la réponse dans la feuille critère
Code:
Sub trouver_texte()
Dim texte As String
Dim ligne, repaire As Long
texte = InputBox("valeur a rechercher")
With Sheets("base de données").Select
Selection.Find(What:=texte, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End With
MsgBox " La cellule " & ActiveCell.Address & " contient le texte recherché !"
ligne = ActiveCell.Row
Worksheets("base de données").Range(Cells(ligne, 1), Cells(ligne, 12)).Copy
repaire = Sheets("Criteres").Range("c5000").End(xlUp).Row
Sheets("Criteres").Activate 'Range("c" & repaire + 1).Paste
ActiveSheet.Paste Destination:=Worksheets("Criteres").Range("c" & repaire + 1 & ":" & "o" & repaire + 1)
End Sub
Je dois être capable de rentrer mes criteres de sélection dans la feuille crtière. J'aimerais être capable de faire une recherche avec plusieurs critère à la fois dans ma base de donnés. Les critères de Tension kV, Q= lg de queue, Ø= dia de queue, Numérotation se retrouve dans la colonne G de la feuillle base de données.
Si j'ai plusieurs "Match" je dois être en mesure d'afficher mes résultats sur la feuille critere dans: "Résultat des recherches".
Présentement ma cacro fonctionne très bien si l'information que je rentre est complet. Ex. Je cherche E536H, elle va m'afficher toutes les lignes avec le texte E536H. Mais si je cherche seulement 536 dans la même colonne, cela ne fonctionne pas.
Voici ma macro:
Option Explicit
Sub Filtrage()
Dim I$, J$, K$, L$, M$, N$, O$, P$, Q$, R$, S$, T$, U$, V$
Dim Lig As Integer
Application.ScreenUpdating = False
Sheets("Criteres").Activate
'Effacement de la feuille "resultats"
Range("D38:O6000").Select
Selection.ClearContents
Range("D38").Select
'Vérification de l'état du mode du filtre élaboré
With Sheets("Base de données")
If .AutoFilterMode = True Then
.Range("A1:N1").AutoFilter
End If
'Définition des variables critères
I = Sheets("Criteres").Cells(2, 3)
J = Sheets("Criteres").Cells(3, 3)
K = Sheets("Criteres").Cells(4, 3)
L = Sheets("Criteres").Cells(5, 3)
M = Sheets("Criteres").Cells(6, 3)
N = Sheets("Criteres").Cells(7, 3)
O = Sheets("Criteres").Cells(8, 3)
P = Sheets("Criteres").Cells(9, 3)
Q = Sheets("Criteres").Cells(10, 3)
R = Sheets("Criteres").Cells(11, 3)
S = Sheets("Criteres").Cells(12, 3)
T = Sheets("Criteres").Cells(13, 3)
U = Sheets("Criteres").Cells(14, 3)
V = Sheets("Criteres").Cells(15, 3)
'Filtrage de la base selon les critères
.Range("A1:N1").AutoFilter
If I <> "" Then .Range("A1:N1").AutoFilter Field:=1, Criteria1:=I
If J <> "" Then .Range("A1:N1").AutoFilter Field:=2, Criteria1:=J
If K <> "" Then .Range("A1:N1").AutoFilter Field:=4, Criteria1:=K
If L <> "" Then .Range("A1:N1").AutoFilter Field:=6, Criteria1:=L
If M <> "" Then .Range("A1:N1").AutoFilter Field:=7, Criteria1:=M
If N <> "" Then .Range("A1:N1").AutoFilter Field:=9, Criteria1:=N
If O <> "" Then .Range("A1:N1").AutoFilter Field:=10, Criteria1:=O
If P <> "" Then .Range("A1:N1").AutoFilter Field:=11, Criteria1:=P
If Q <> "" Then .Range("A1:N1").AutoFilter Field:=12, Criteria1:=Q
If R <> "" Then .Range("A1:N1").AutoFilter Field:=10, Criteria1:=R
If S <> "" Then .Range("A1:N1").AutoFilter Field:=11, Criteria1:=S
If T <> "" Then .Range("A1:N1").AutoFilter Field:=12, Criteria1:=T
If U <> "" Then .Range("A1:N1").AutoFilter Field:=13, Criteria1:=U
If V <> "" Then .Range("A1:N1").AutoFilter Field:=14, Criteria1:=V, Operator:=xlAnd
' Transfert des résultats
Lig = .Range("A65536").End(xlUp).Row
If Lig > 1 Then
.Range("A2:N" & Lig).Copy Sheets("Criteres").Range("D38")
Else
MsgBox "Pas d'enregistrement existant !"
End If
.Range("A1:N1").AutoFilter
End With
Sheets("Criteres").Cells(3, 6).Select
Application.ScreenUpdating = True
End Sub
Tu vois, la seule chose qui me manque c'est de combiner une recherche par texte incomplet pour chaque critère et aussi pouvoir intégrer plusieurs critère pour la même variable. La seul fonction dans d'excel capable de le faire c'est le filtre textuel.
Je te laisse travailler la dessus. Je t'envoie une photo du filtre textuel avec contient.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD