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
bolo882