Arborescence selective (selon le nom de section) pour un tableau

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 !

anthoYS

XLDnaute Barbatruc
bonjour,

je souhaite faire, c'est à partir d'un tableau, pouvoir avoir une vue d'ensemble de toutes les sections, et au besoin, voir toutes les correspondances d'une ou plusieurs de ces sections (avec le "+" que je ne parviens plus à faire). voir fichier joint.

Si vous savez, faites-moi connaître les démarches permettant d'y aboutir ; merci d'avance

A+
 

Pièces jointes

Re : Arborescence selective (selon le nom de section) pour un tableau

Bonjour,

petite idée comme ca au passage, essaye peut être la création d'un plan => barre de menu Excel => Données => Grouper et créer un plan, à voir si cela peut te convenir...

bonne journée
@+
 
Re : Arborescence selective (selon le nom de section) pour un tableau

Pierrot93 je suis sous Excel 2007, il y a effectivement "Grouper" dans "Données" mais par ligne, cela ne ma convient pas, tout est masqué, or je souhaite que cette arborescence s'effectue sur le nom de section...

merci

A+ aux autres (ou à toi)!
 
Re : Arborescence selective (selon le nom de section) pour un tableau

Bonjour anthoYS, salut Pierrot,

Voyez cette macro dans le code de la 2ème feuille :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel As Range, sup As Range, ref As Range, r1, r2
Application.ScreenUpdating = False
For Each cel In Range("C2", Range("C65536").End(xlUp))
  If cel <> "+" Then Set sup = Union(cel, IIf(sup Is Nothing, cel, sup))
Next
If Not sup Is Nothing Then Intersect(sup.EntireRow, Range("A:E")).Delete xlUp
On Error Resume Next 'Target peut avoir été supprimé...
Set Target = Target.Cells(1, 1)
If Target <> "+" Then Exit Sub
Set ref = Cells(Target.Row + 1, 1).Resize(, 5)
r1 = Target.Offset(, -2)
r2 = Target.Offset(, -1)
With Sheets("SelectionExplLect") 'ou mieux => With Feuil1
  For Each cel In .Range("B2", .Range("B65536").End(xlUp))
    If cel.Offset(, -1) = r1 And cel = r2 Then
      cel.Offset(, -1).Resize(, 5).Copy
      ref.Insert
    End If
  Next
  Application.CutCopyMode = False
End With
End Sub

Fichier joint.

A+
 

Pièces jointes

Re : Arborescence selective (selon le nom de section) pour un tableau

re,

Pierrot93
, parce que tout dépend du lieu que je suis. Et en plus, 2003, pour qu'il y ai un plus large pannel de réponse, et qu'à partir de 2007, on ouvre du 2003 ! La preuve !

Merci job75, mais n'est-il pas possible de conserver les premières arborescences -toutes celles qu'on a ouvertes- et que l'on puisse les refermer avec "-".

Quitte à scinder le tableau en deux, si il existe une méthode plus simple sans passer par du VBA, je suis preneur.

A+
 
Dernière édition:
Re : Arborescence selective (selon le nom de section) pour un tableau

Re,

Merci job75, mais n'est-il pas possible de conserver les premières arborescences -toutes celles qu'on a ouvertes- et que l'on puisse les refermer avec "-".

Voyez donc cette version (2).

J'ai ajouté cette 2ème macro :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target <> "-" Then Exit Sub
Dim sup as Range
Cancel = True
Application.ScreenUpdating = False
Target = "+"
1 Set sup = Target.Offset(1)
If sup <> "+" And sup <> "-" And sup <> "" Then sup.Offset(, -2).Resize(, 5).Delete xlUp: GoTo 1
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : Arborescence selective (selon le nom de section) pour un tableau

Merci ;

D'accod job75, un clic pour ouvrir le "+", et un double clic pour refermer (-) la selection.
Ne pourrais-t-on pas tout faire par double clic (ou simple), j'opterai pour le double.
Parce que parfois, ça pose des problème, et transforme le simple clic en formule de "+" "+C6".
Ou alors, au lieu de "+", "détail", et de "-", "masqué" ; Et là on pourrai utilisé le simple clic.

Merci d'avance!
 
Re : Arborescence selective (selon le nom de section) pour un tableau

Re,

Avec uniquement le double-clic - fichier (3) :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim cel As Range, sup As Range, ref As Range, r1, r2

If Target = "+" Then
  Cancel = True
  Application.ScreenUpdating = False
  Target = "-"
  Set ref = Cells(Target.Row + 1, 1).Resize(, 5)
  r1 = Target.Offset(, -2)
  r2 = Target.Offset(, -1)
  With Sheets("SelectionExplLect") 'ou mieux => With Feuil1
    For Each cel In .Range("B2", .Range("B65536").End(xlUp))
      If cel.Offset(, -1) = r1 And cel = r2 Then
        cel.Offset(, -1).Resize(, 5).Copy
        ref.Insert
      End If
    Next
    Application.CutCopyMode = False
  End With
  Exit Sub
End If

If Target = "-" Then
  Cancel = True
  Application.ScreenUpdating = False
  Target = "+"
1 Set sup = Target.Offset(1)
  If sup <> "+" And sup <> "-" And sup <> "" Then sup.Offset(, -2).Resize(, 5).Delete xlUp: GoTo 1
End If

End Sub

A+
 

Pièces jointes

- 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

Discussions similaires

Retour