Pb masquer des colonnes et les faire réapparaître

Bonjour,

J'ai trouvé une macro qui permet de masquer les colonnes non vides :

For Each n In [A9:M9]

If n = "" Then

n.Columns.Hidden = True

Else

n.Columns.Hidden = False

End If

Next

J'ai un souci car je souhaite l'associer à une liste déroulante qui en fonction de la valeur choisie,

mets des libellés ou non entre les colonnes A9 à M9.

Hors dans le fichier joint, en cellule D3, quand je sélectionne l'agence 11, jai bien tous les libellés des colonnes,

ensuite quand je mets l'agence 1, la macro me masque bien les colonnes vides.

et quand je reviens sur l'agence 11, je dois la sélectionner x fois pour voir l'ensemble des colonnes.

Pourriez-vous m'aider ?

Merci.

Jérôme

jerome91, le forum,

Feuille "Variables", mettre en commentaire la macro "Private Sub Worksheet_Change(ByVal Target As Range)"

et tester celle-ci pour voir si elle convient ...

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address <> "$D$3" Then Exit Sub

    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Set fb = Sheets("base")
    lgn = fb.Range("B5:B" & fb.Range("B" & Rows.Count).End(xlUp).Row).Find(Target, lookat:=xlWhole).Row
    dercol = fb.Cells(5, Columns.Count).End(xlToLeft).Column
    Range(Cells(9, 2), Cells(9, Cells(9, Columns.Count).End(xlToLeft).Column)).ClearContents

    For Each n In [A9:M9]
        n.Columns.Hidden = False
    Next n

    For j = 3 To dercol
        If UCase(fb.Cells(lgn, j)) = "X" Then
            colne = Application.Max(1, Cells(9, Columns.Count).End(xlToLeft).Column) + 1
            Cells(9, colne) = fb.Cells(5, j)
        End If
    Next j

    For Each n In [A9:M9]
        If n <> "" Then
            n.Columns.Hidden = False
        Else
            n.Columns.Hidden = True
        End If
    Next n

    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub

LaCéline

Bonjour,

Merci ça fonctionne.

Jérôme

Rechercher des sujets similaires à "masquer colonnes reapparaitre"