Affichage par groupe
Bonjour je souhaite afficher des données dans une feuille excel sous forme de groupe
je m'explique, voici le tableau ci-dessous concerné (voir pièce jointe pour exemple)
Matériel Local N° dossier Titre du dossier Statut N° de la phase Titre phase Statut de la phase
2ABP017VL 2HM225 01951282 Maintenance A EN PRÉPA 01951282 - 05 Infos EN PRÉPA
2ABP017VL 2HM225 01951282 Maintenance A EN PRÉPA 01951282 - 06 Activité EN PRÉPA
2ABP017VL 2HM225 01951282 Maintenance A EN PRÉPA 01951282 - 08 Maintenance EN PRÉPA
2ABP018VL 2HM225 01951269 Remplacement B EN PRÉPA 01951269 - 05 Infos EN PRÉPA
2ABP018VL 2HM225 01951269 Remplacement B EN PRÉPA 01951269 - 06 Activité EN PRÉPA
2ABP018VL 2HM225 01951269 Remplacement B EN PRÉPA 01951269 - 08 Maintenance EN PRÉPA
2ABP035VL 2HM417 01951268 Echange C EN PRÉPA 01951268 - 05 Infos EN PRÉPA
2ABP035VL 2HM417 01951268 Echange C EN PRÉPA 01951268 - 06 Activité EN PRÉPA
2ABP035VL 2HM417 01951268 Echange C EN PRÉPA 01951268 - 08 Maintenance EN PRÉPA
J'aimerais donc pouvoir afficher sous forme de données en cascade (avec des niveaux d'arborescence les groupes soit en mode "groupe déplié" si je clique sur un signe (+ )(avec toutes les infos présentes ) mais aussi en mode "groupe plié" si je clique sur un signe (-).
Quand les données seraient affichés en mode plié, il n'apparaîtrait que les données ci-dessous :
Matériel Local N° dossier Titre du dossier Statut
2ABP017VL 2HM225 01951282 Maintenance A EN PRÉPA
et si je déplie, celles-ci
Matériel Local N° dossier Titre du dossier Statut N° de la phase Titre phase Statut de la phase
2ABP017VL 2HM225 01951282 Maintenance A EN PRÉPA 01951282 - 05 Infos EN PRÉPA
01951282 - 06 Activité EN PRÉPA
01951282 - 08 Maintenance EN PRÉPA
j'ai essayé l'option "grouper" et je n'ai pas réussi et puis aussi le tableau croisé dynamique mai je n'arrive pas focément au résultat que je souhaite
Si quelqu'un peut m'aider svp !
Merci par avance
par exemple, il faudrait qu'en mode plié n'apparaissent que les lignes 2, 5 et 8 avec seulement le texte des colonnes ABCDE et si je veux voir le détail du groupe ayant le texte 2ABP017VL en colonne A, cliquer sur une image ou alors un signe pour faire apparaître les lignes 2,3 et 4 avec leur détail situé dans les colonnes FGH. Le tout sans faire apparaître les lignes de détail des autres groupes 2ABP018VL et 2 ABP035VL qui resterait en mode d'affichage "plié"
Re,
Il faudrait donc créer autant de bouton que de groupe ?
Si telle est le cas c'est un taf fastidieux si tu as plein de groupe, d'autant plus si il sont susceptible de s'en voir ajouter de nouveau ou d'en modifier ou supprimer d'autre ...
En revanche il est possible de créer un cellule pour sélectionner le groupe à afficher et n'afficher que celle si avec la possibilité de masquer les lignes en dessous et avec le bouton de les afficher et d'afficher les colonnes
peux tu m'illustrer avec mon fichier d'exemple le dernier sujet qui parle de créer une cellule avec des lignes masquées et tout stp ?
Re,
Moi je pensais à qqch comme ça après faut voir comment on peux masquer les lignes ...
Bonsoir,
Un dispositif simple sur double-click, pour afficher ou masquer. Double-click sur les lignes servies des colonnes A à E.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim n%, nn%, fin%
fin = Me.Cells(Rows.Count, 6).End(xlUp).Row
If Target.Column < 6 And Target.Row > 1 And Target.Row < fin _
And Target.Value <> "" Then
n = Target.Row: nn = n + 1
Do While Me.Cells(nn, 1) = "" And nn < fin
nn = nn + 1
Loop
With Me.Rows(n + 1 & ":" & nn - 1)
.Hidden = Not .Hidden
End With
Cancel = True
End If
End SubUne mention doit marquer la fin du fichier en colonne F après la dernière ligne utilisée (ici la ligne 14, le mot FIN y figure, police à blanc... cette ligne ne doit jamais être masquée).
Cordialement.
Bonjour à tous,
crée les groupes en double-cliquant en A1 (refaire après mise à jour) :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim lig As Long, derlig As Long, nb As Long
derlig = Cells(Rows.Count, 1).End(xlUp).Row
If Target.Address = "$A$1" And derlig > 1 Then
Cancel = True
Application.ScreenUpdating = False
[A:E].Font.ColorIndex = xlAutomatic
On Error Resume Next
Rows.Ungroup
Rows.Hidden = False
On Error GoTo 0
lig = 2
Do
nb = Application.CountIf(Columns(1), Cells(lig, 1))
If nb > 1 Then
Cells(lig + 1, 1).Resize(nb - 1).Rows.Group
Cells(lig + 1, 1).Resize(nb - 1, 5).Font.Color = vbWhite
End If
lig = lig + nb
Loop Until lig > derlig
ActiveSheet.Outline.ShowLevels RowLevels:=1
Application.ScreenUpdating = True
End If
End SubLes 5 premières colonnes des ligne repliées sont masquées.
eric