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