[Résolue] Masquer des colonnes en fonction d'un tri

grhum29

XLDnaute Junior
Bonjour,

Je travaille actuellement sur un fichier Excel sur lequel je rencontre un problème de mise en forme et d'affichage.

Je souhaite masquer les colonnes qui ne contiennent pas de données en fonction du filtre de la colonne D.

Par exemple :
=> Si je filtre sur le nom A (colonne D), je souhaite que les colonnes vides F, K,S, ... se masquent automatiquement et se ré affichent lorsque j'enlève ce filtre.

=> Idem pour le nom B : si je filtre sur ce nom, je souhaite que les colonnes vides K, S... se masquent automatiquement et se ré affichent lorsque j'enlève ce filtre.

Je vous mets en pièce jointe le fichier en question.

Merci de votre aide.

Bonne journée.

Grhum29.
 

Pièces jointes

  • testCG.xlsx
    13.2 KB · Affichages: 25
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Masquer des colonnes en fonction d'un tri

Bonjour

l'utilisation du filtre automatique ne déclenche aucune procédure évènementielle, mais en rusant on peut arriver à quelque chose.

En A1 mettez la formule : =A2 ce qui obligera Excel à recalculer les formules et donc la procédure Worksheet_Calculate() se déclenchera.

et dans le code la feuille, copier:

Code:
Private Sub Worksheet_Calculate()
 Dim Tot, i, Rep, Derlig
 Columns("F:AE").EntireColumn.Hidden = False
 For i = 31 To 6 Step -1
    Derlig = Range("A" & Rows.Count).End(xlUp).SpecialCells(xlCellTypeVisible).Row + 1
    Tot = Application.WorksheetFunction.CountA(Feuil1.Columns(i).SpecialCells(xlCellTypeVisible)) - 1
    If Tot = 0 Then Columns(i).Hidden = True
 Next
End Sub

NB pour ne pas être géné par l'affichage en A1, on peut passer la couleur des caractères en blanc

A+
 

Discussions similaires

Réponses
2
Affichages
467

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400