Macro pour masquer des colonnes vides après filtrage

Résolu/Fermé
Adl89 Messages postés 2 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 19 mai 2015 - 19 mai 2015 à 15:15
Adl89 Messages postés 2 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 19 mai 2015 - 19 mai 2015 à 16:46
Bonjour,

Je fais mes débuts dans les macros et j'ai un fichier Excel avec bcp de colonnes.

Avec les filtres, je sélectionne par exemple 3 personnes auxquelles correspondent des formations et certaines colonnes sont donc vides. Je souhaiterais masquer ces colonnes vides.

Voilà donc comment je me suis dépatouillée : je pensais arriver près du but mais maintenant la macro ne fait absolument plus rien :

Private Sub Supprimercolonnesvides()

Dim i As Integer
Dim j As Integer
Dim NbLignes As Integer
Dim n As Integer

NbLignes = Application.WorksheetFunction.CountA(ActiveSheet.Range("A3").CurrentRegion.Columns(1).SpecialCells(xlVisible)) - 1

For j = 1 To ActiveSheet.Range("A3").CurrentRegion.Columns.Count
n = 0
For i = 4 To NbLignes + 3
If IsEmpty(Cells(i, j)) = True Then n = n + 1
Next i
If n = NbLignes Then Columns(j).Hidden = True
Next j
End Sub

Merci par avance si quelqu'un arrive à m'aider.
A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
19 mai 2015 à 16:36
Bonjour,

Pour masquer les colonnes vides:

Sub masquer_col_vides()
Dim c
For c = 256 To 1 Step -1
If Cells(65536, c).End(xlUp).Row = 1 Then Cells(1, c).EntireColumn.Hidden = True ' mettre à False pour rétablir
Next c
End Sub

' 65 536 lignes sur 256 colonnes jusqu'à la version 2003 (11.0)
' 1 048 576 lignes sur 16 384 colonnes pour les versions 2007 et 2010

0
Adl89 Messages postés 2 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 19 mai 2015
19 mai 2015 à 16:46
Ah ok c'est tout simple en fait... Je ne comprenais pas End(xlUp).

J'imagine que ça compte les cellules non vides ?

Merci en tout cas.
0