filtr v excelu Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

nazdaar
nováček
Příspěvky: 16
Registrován: červen 10
Pohlaví: Muž
Stav:
Offline

filtr v excelu

Příspěvekod nazdaar » 09 lis 2010 12:16

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ě:)
Přílohy
Sešit1.xls
(15 KiB) Staženo 29 x

Reklama
Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: filtr v excelu

Příspěvekod Poki » 09 lis 2010 12:48

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...
Přílohy
Sešit1.xls
(42.5 KiB) Staženo 19 x

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: filtr v excelu  Vyřešeno

Příspěvekod navstevnik » 09 lis 2010 13:30

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

nazdaar
nováček
Příspěvky: 16
Registrován: červen 10
Pohlaví: Muž
Stav:
Offline

Re: filtr v excelu

Příspěvekod nazdaar » 09 lis 2010 13:49

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

nazdaar
nováček
Příspěvky: 16
Registrován: červen 10
Pohlaví: Muž
Stav:
Offline

Re: filtr v excelu

Příspěvekod nazdaar » 09 lis 2010 13:54

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


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Excel - filtr na formát buňky + obsah Příloha(y)
    od popcorn » 19 zář 2023 17:07 » v Kancelářské balíky
    0
    2263
    od popcorn Zobrazit poslední příspěvek
    19 zář 2023 17:07
  • Excel - filtr hyperlinku na druhý list Příloha(y)
    od mikiracan » 06 čer 2023 11:49 » v Kancelářské balíky
    2
    2795
    od mikiracan Zobrazit poslední příspěvek
    18 srp 2023 10:17
  • Import PDF do excelu Příloha(y)
    od luko02420 » 13 kvě 2023 11:29 » v Kancelářské balíky
    18
    3808
    od luko02420 Zobrazit poslední příspěvek
    16 kvě 2023 11:27
  • Poškozený soubor excelu Příloha(y)
    od Jsimi » 06 úno 2024 22:43 » v Kancelářské balíky
    0
    1066
    od Jsimi Zobrazit poslední příspěvek
    06 úno 2024 22:43
  • Promítaní excelu a videa zároveň
    od Marw7_ » 02 čer 2023 15:57 » v Vše ostatní (sw)
    2
    1385
    od X Zobrazit poslední příspěvek
    02 čer 2023 18:06

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů