Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…