Filtr na kolumny

Może, się zdarzyć tak, że będziemy potrzebowali filtrować nie wiersze (co nam umożliwia autofiltr czy też filtr zaawansowany), ale kolumny. Niestety brak jest takiego wbudowanego mechanizmu w excelu. Ale od czego VBA i pomysłowość? Oto makro nadesłane przez Henryka Tomczyka rozwiązujące ten problem (kod należy wstawić w arkusz, w którym chcemy mieć tę funkcjonalność):


Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 

    'Kliknij wiersz poszukiwań prawym klawiszem myszy
   
If Selection.Rows.Count <> 1 Or Selection.Cells.Count = 1 Then End
        ' Cancel = True
   
ciag = InputBox("Podaj szukany ciąg.")
    If ciag = "" Then End
    Application.ScreenUpdating = False
 

    With Selection
        Set c = .Find(ciag, LookIn:=xlValues)
        If Not c Is Nothing Then
            pierw_adr = c.Address
            Columns.ColumnWidth = 0.05
            Do
                Range(c.Address).EntireColumn.AutoFit
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> pierw_adr
        End If
    End With
 

    If c Is Nothing Then MsgBox "Ciąg >> " & ciag & " << nie występuje!"
    Application.ScreenUpdating = True


End Sub

 

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
 

    ' kliknij 2x lewym = pokaż wszystkie kolumny
   
Columns("A:IV").ColumnWidth = 8.43
    Selection.CurrentRegion.EntireColumn.AutoFit
 

End Sub