bonjour
je suis en train de créer une tables des matières, avec les lien vers les fichiers concernés.
je voudrais dans une box ou cellule, entrée un mot ou une partie d'un mot, pour que un tri se fasse sur les lignes ou ce dernier et trouver.
suis arriver a avoir un résultat mais je n'obtient que la premiere ligne, contenant ma recherche.
en vous remerciant, d'avance,
mes salutations
Retrouvé dans mes archives car pas trop pro avec ListBox. J'ai essayé d'adapté à ton besoin. En espérant que cela te convienne.
Bonne soirée à toutes & à tous.
@+ Eric c
merci pour ton aide
mais je voudrais que ca me fasse un trie, dans le tableau.
pour garder que les lignes du résultat de la recherche, car sur d'autres colonnes ils y a des lien pour aller sur des dossiers.
Bonsoir à toutes & à tous, bonsoir @Yvon M
Avec une formule matricielle stockée dans un nom, et 2 tableaux structurés (un pour la source "_Liste" , un pour les résultats "_Extraction", ces deux tableaux doivent avoir le même nombre de lignes, si toutes les lignes de la source matchent)
le Nom défini dans le gestionnaire de noms :
bonjour
la macro fonctionne bien, mais la recherche se fait sur la premiere colonne, alors qu'il faudrai sur la troisième.
encore merci pour votre aide
salutations
bonjour
la macro fonctionne bien, mais la recherche se fait sur la premiere colonne, alors qu'il faudrai sur la troisième.
encore merci pour votre aide
salutations
je pense avoir trouver
Sub Recherche()
Dim sText As String
ActiveSheet.ListObjects("Tableau1").ListColumns(3).Range.AutoFilter
sText = InputBox("Texte à rechercher:", "Texte", "")
If sText = "" Then Exit Sub
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3, Criteria1:="=*" & sText & "*"
End Sub
Question : Si c'est pour filtrer sur place, pourquoi ne pas utiliser les filtres du tableau directement en choisissant filtre textuel et contient ? ça fait la même chose sans macro ...
Sinon pour extraire ailleurs que dans le tableau, avec tes données ma solution par formule ne convient pas car le temps d'exécution est rédhibitoire.
Je te propose une solution par macro qui s'exécute lorsque l'on change le mot clef :
Code à placer dans le code de la feuille table des matières :
Enrichi (BBcode):
Option Base 1
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
'Sortir si La modif ne provient pas du mot clef
If Intersect(Target, [_Mot_Clef]) Is Nothing Then Exit Sub
Dim Tb, MotClef$, Extrait(), Article, Nb_Articles As Long
'RàZ de l'extraction
[_Extraction[Extraction]].ClearContents
With Me.ListObjects("_Extraction")
.Resize .HeaderRowRange.Resize(2)
End With
MotClef = [_Mot_Clef]
'Sortir si le mot clef est vide
If MotClef = "" Then Exit Sub
'Liste des articles
Tb = [_TdM[Article / Sujet]]
'Recherche des articles qui correspondent
Nb_Articles = 0
For Each Article In Tb
If Article Like "*" & MotClef & "*" Then
Nb_Articles = Nb_Articles + 1
ReDim Preserve Extrait(Nb_Articles)
Extrait(Nb_Articles) = Article
End If
Next
'Restitution du résultat de la recherche
If Nb_Articles > 0 Then
With Me.ListObjects("_Extraction")
.Resize .HeaderRowRange.Resize(Nb_Articles + 1)
.DataBodyRange.Value = Application.Transpose(Extrait)
End With
End If
End Sub
Re-Bonjour
Avec une fonction de suppression des accents trouvée sur le Net :
Enrichi (BBcode):
Function sansaccent(texte)
t = texte
Avec = "ÀÂÇÈÉÊËÏÔÖÛÜàáâçèéêëîïôöùûü"
Sans = "AACEEEEIOOUUaaaceeeeiioouuu"
For i = 1 To Len(Avec)
t = Replace(t, Mid(Avec, i, 1), Mid(Sans, i, 1))
Next i
sansaccent = t
End Function
Re-Bonjour
Avec une fonction de suppression des accents trouvée sur le Net :
Enrichi (BBcode):
Function sansaccent(texte)
t = texte
Avec = "ÀÂÇÈÉÊËÏÔÖÛÜàáâçèéêëîïôöùûü"
Sans = "AACEEEEIOOUUaaaceeeeiioouuu"
For i = 1 To Len(Avec)
t = Replace(t, Mid(Avec, i, 1), Mid(Sans, i, 1))
Next i
sansaccent = t
End Function
bonsoir
cela semble intéressant comment l'intégrer a la macro de Riton00,sa macro pour recherche est exactement ce que je veut, si en plus ont peu eviter les accents, se sera parfait.
encore merci pour votre aide
Re-Bonsoir,
Tel-quel la macro de Riton00 utilise le filtre du tableau structuré
(exactement comme si tu choisis dans les filtres "Filtres textuels" et "Contient" : )
La différence est un bouton plus explicite que l'interface Excel.
Si l'on peut faire abstraction des accents sur le texte saisi par l'utilisateur, ce n'est pas le cas pour les textes contenus dans la colonne "Article / Sujet" qui garderont leur accentuation.
Je regarde ce que l'on peut faire avec une autre méthode.
Amicalement
Alain
Re, de nouveau
Voici un exemple, indifférent à l'accentuation, avec une extraction de toutes les colonnes dans une feuille à part
"Rechercher un Article|Sujet"
La macro se déclenche à chaque changement du mot clef et rapatrie les 9 colonnes de ton tableau (y compris les liens hypertextes).
Dis moi si ça peut te convenir
Amicalement
Alain