Stránka 1 z 1
filtr v excelu
Napsal: 09 lis 2010 12:16
od nazdaar
Ahoj,zdravím všechny, mám prosbu, potřeboval bych v excelu 2003 poradit s filtrováním.
Nevím jestli to co potřebuju vůbec nějak půjde,ale třeba Vás něco napadne.
Mám tabulku zákazníků, u nich nějaká data jako č. faktury, částka a td. Potřebuju vyfiltrovat ty, kterří mají celkovou hodnotu 0 nebo menší a ty smazat, jenže chci smazat i jednotlivý hodnoty u nich, který ale můžou být kladný. Nenapadá Vás nějakej fígl? Mám to pro velký množství dat a mazat to ručně je dost náročný. Ukázka je v příloze. Díky za každý nápad
Snad jsem to popsal aspoň trochu srozumitelně:)
Re: filtr v excelu
Napsal: 09 lis 2010 12:48
od Poki
V prilozenem souboru je makro (na tlacitko), ktere ve sloupci F oznacni vsechny radky, ktere chcete smazat slovem "vymazat" - to uz potom snadno vyfiltrujete a smazete...
Re: filtr v excelu Vyřešeno
Napsal: 09 lis 2010 13:30
od navstevnik
V editoru VBA vloz do standardniho modulu proceduru, spust F5.
Procedura odstrani prislusne radky. Vychozi setrideni podle Jmena se predpoklada.
Kód: Vybrat vše
Option Explicit
Sub Odstran()
Dim Oblk As Range, OCll As Range
Dim OldJm As String, TmpCll As String
With Worksheets("list1")
' zrusit pripadny autofiltr
.AutoFilterMode = False
' definovat blok jmen
Set Oblk = .Range("c4:c" & .Cells(.Rows.Count, 3).End(xlUp).Row)
OldJm = vbNullString
' prochazet blok a vyprazdnit odpovidajici radky, kdyz Celkem<=0
For Each OCll In Oblk.Cells
If OldJm <> OCll.Value Then
OldJm = OCll.Value
TmpCll = OCll.Address
End If
If OCll.Offset(0, -1).Value = "Celkem" Then
If OCll.Offset(0, 2).Value <= 0 Then
.Range(TmpCll & ":" & OCll.Address).EntireRow.ClearContents
End If
End If
Next OCll
' po vyprazdneni radku setridit podle sloupce C
Set Oblk = Oblk.Resize(Oblk.Rows.Count, 4).Offset(0, -1)
Oblk.Sort Key1:=Range("c4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
Set OCll = Nothing
Set Oblk = Nothing
End Sub
Re: filtr v excelu
Napsal: 09 lis 2010 13:49
od nazdaar
Paráda, to je ono, jenom jsem neumětel a neumim VBA, ale dokázal jsem to tak nějak aplikovat na svůj dokument, ten je teda pokaždý trochu jinej, ale s tim se snad popasuju, každopádně jste mi ušetřil spoustu práce takže moc díky
Re: filtr v excelu
Napsal: 09 lis 2010 13:54
od nazdaar
navstevnik píše:V editoru VBA vloz do standardniho modulu proceduru, spust F5.
Procedura odstrani prislusne radky. Vychozi setrideni podle Jmena se predpoklada.
Kód: Vybrat vše
Option Explicit
Sub Odstran()
Dim Oblk As Range, OCll As Range
Dim OldJm As String, TmpCll As String
With Worksheets("list1")
' zrusit pripadny autofiltr
.AutoFilterMode = False
' definovat blok jmen
Set Oblk = .Range("c4:c" & .Cells(.Rows.Count, 3).End(xlUp).Row)
OldJm = vbNullString
' prochazet blok a vyprazdnit odpovidajici radky, kdyz Celkem<=0
For Each OCll In Oblk.Cells
If OldJm <> OCll.Value Then
OldJm = OCll.Value
TmpCll = OCll.Address
End If
If OCll.Offset(0, -1).Value = "Celkem" Then
If OCll.Offset(0, 2).Value <= 0 Then
.Range(TmpCll & ":" & OCll.Address).EntireRow.ClearContents
End If
End If
Next OCll
' po vyprazdneni radku setridit podle sloupce C
Set Oblk = Oblk.Resize(Oblk.Rows.Count, 4).Offset(0, -1)
Oblk.Sort Key1:=Range("c4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
Set OCll = Nothing
Set Oblk = Nothing
End Sub
Tohle mi nefunguje,ale to je tím že to neumim upravit na svůj dokument:(, stejně díky