XL 2019 table des matières

Yvon M

XLDnaute Nouveau
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
 

Pièces jointes

  • recherche et trie.xlsx
    13.9 KB · Affichages: 11

Yvon M

XLDnaute Nouveau
bonjour
ca marche tres bien,
juste une question, se fichier est sur cle USB, lorsque je change de pc la lettre change
j'ai une cellule dans la feuilles paramètre, ou se trouve l'adresse des fichier a ouvrir "/d:/_______"
et t'il possible sur Excel de récupérer la lettre du lecteur, pour modifier cette cellule automatiquement.?
la je vois peu etre un peu loin!
merci beaucoup, pour ton aide.
cordialement
Yvon
 

Yvon M

XLDnaute Nouveau
bonjour a tous
je revient vers vous ,car mon fichier a évolué, plus de colonne et de ligne.
du coup ma macro plante, et je n'arrive pas comprendre ou se situe le problème.
erreur d'execution "9" l'indice n'appartient pas a la selection.
en débogage ca me met en jaune la ligne suivante
"TbAll = Worksheets("Table des Matières").ListObjects("_Tdm").DataBodyRange.Value"
merci d'avance pour votre aide

VB:
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, i As Long
    
    'RàZ de l'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
    TbAll = Worksheets("Table des Matières").ListObjects("_Tdm").DataBodyRange.Value
    Tb = Worksheets("Table des Matières").[_TdM[Article / Sujet]]
    Tb_Lien = Worksheets("Table des Matières").[_TdM[Magazines]].FormulaR1C1
    For i = 1 To UBound(Tb)
       TbAll(i, 5) = Tb_Lien(i, 1)
    Next i
    'Recherche des articles qui correspondent
    Nb_Articles = 0
    i = 0
    For Each Article In Tb
        i = i + 1
        If sansaccent(CStr(Article)) Like "*" & sansaccent(MotClef) & "*" Then
            Nb_Articles = Nb_Articles + 1
            ReDim Preserve Extrait(Nb_Articles)
            Extrait(Nb_Articles) = i
        End If
    Next
    
    'Restitution du résultat de la recherche
    If Nb_Articles > 0 Then
        ReDim Tb_Res(1 To Nb_Articles, 1 To 9)
        For i = 1 To Nb_Articles: For j = 1 To 9
            Tb_Res(i, j) = TbAll(Extrait(i), j)
        Next j: Next i
        
        With Me.ListObjects("_Extraction")
            .Resize .HeaderRowRange.Resize(Nb_Articles + 1)
            .Range.Offset(1).Resize(Nb_Articles).FormulaR1C1 = Tb_Res
        End With
    End If
End Sub
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour à toutes & à tous, bonjour @Yvon M
Avec les informations que tu donnes
en débogage ca me met en jaune la ligne suivante
"TbAll = Worksheets("Table des Matières").ListObjects("_Tdm").DataBodyRange.Value"
Soit la feuille "Table des Matières" soit le Tableau structuré "_Tdm" n'existe pas orthographié exactement de cette façon.
À bientôt
 

Staple1600

XLDnaute Barbatruc
Re

Heureusement que j'avais précisé allégé ;)
ALLEGECapture.PNG
 

Yvon M

XLDnaute Nouveau
les #ref son des liens qui vont chercher la revus
sur un fichier simplifier ,ancien models avec moins de colonnes, ca ressemble a la meme chose, et ca fonctionne, quand je clic dans la fenêtre en haut a gauche ,je retrouve bien _TdM, qui me ramène au tableau table des matière .plus bosser sur excel depuis mon depart en retraite ,je commence a rouiller.
merci pour ton aide
 

Discussions similaires

Réponses
6
Affichages
319

Statistiques des forums

Discussions
312 226
Messages
2 086 414
Membres
103 204
dernier inscrit
alaa20dine01