Bouton masquer/afficher + mise en forme
Bonjour,
Je suis actuellement en train de mettre en forme un fichier d'analyse comportant quelques TCD (tableaux croisés dynamiques).
Je n'avais pas réussi à automatiser la fonction "Grouper" des TCD qui m'est indispensable pour une meilleure visualisation des résultats.
J'ai donc pensé à faire trois boutons "Masquer colonnes", "Masquer lignes" et "Afficher".
1 ) Le problème est le suivant : mes lignes et mes colonnes sont variables et je n'arrive pas à y faire face..
Pourriez-vous m'aider pour automatiser cette démarche. Je vous mets en pièce jointe, un fichier de mes attentes.
2) Trouvant très laid les boutons de macro j'aimerais modifier leur design
J'ai trouvé une personne qui avait fait un bouton (sûrement une forme) qui me conviendrait pour mes 3 boutons du haut mais je n'arrive pas à le reproduire
Je vous remercie par avance du temps que vous allez prendre pour mon cas
PS: Etant novice en VBA, je reste à l'écoute de vos astuces ou éventuelles corrections sur mon code ^^
M. D. Cyril
Bonsoir,
Ce n'est pas un bouton. Il faut passer par le menu Insertion pour insérer des formes rectangulaires. Après tu consultes par clique droit sur l'objet pour voir ses propriétés. Tu mets les mêmes sur le nouveau.
Bonjour Raja,
Merci d'abord pour ta réponse que je n'ai vu qu'aujourd'hui (grand week end
Je sais que je peux le faire manuellement mais ces deux fichiers ne sont que des exemples ^^.
J'ai besoin de ses 2 macros pour pouvoir rendre plus visible mes feuilles...
Les boutons masquer/afficher peuvent être comparés à la fonction grouper des tableaux croisés.
Pour la mise en forme, s'il n'y a pas de solution autre que l'insertion manuel je laisserai les boutons d'origine ^^.
Re,
Désolé pour le double post.
J'ai trouvé une solution pour des macros "masquer"/"afficher" les lignes et les colonnes.
Sub z_masquer_lig()
Dim c As Range
Dim MaValeur As String
Range("A5").Select
For Each cell In Range("A6:A" & Range("A" & Rows.Count).End(xlUp).Row)
MaValeur = ActiveCell.Value
Set c = Sheets("Matrice").Range("plage").Find(MaValeur, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
ActiveCell.EntireRow.Hidden = True
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub
Sub z_masquer_col()
Dim c As Range
Dim MaValeur As String
Range("A5").Select
For Each cell In Range("A5:S5")
MaValeur = ActiveCell.Value
Set c = Sheets("Matrice").Range("plage").Find(MaValeur, LookIn:=xlValues, lookat:=xlWhole)
If ActiveCell.Value = "" Then
ActiveCell.EntireColumn.Hidden = False
ElseIf Not c Is Nothing Then
ActiveCell.EntireColumn.Hidden = True
End If
ActiveCell.Offset(0, 1).Select
Next
End Sub
Sub z_afficher()
Columns("A:Z").Select
Selection.EntireColumn.Hidden = False
Rows("1:100").Select
Selection.EntireRow.Hidden = False
End Sub
Je mettrai ce post en résolu que dans 2/3 jours car ma deuxième demande n'a pas été résolue.
Si vous avez des idées n'hésiter pas.
Merci