Stránka 1 z 1

EXCEL - filtr

Napsal: 01 bře 2012 05:28
od stejzi
Zdravím,
mám sloupec E a F, E je stav zásob na skladě, F sečtené zakázky. Potřebuji např. tlačítko, u kterého by se mě vyfiltrovali řádky kde E=F a E=(F+1).

Mám nastavené podmíněné formátování, když se hodnoty rovnají nebo stav na skladě je o jeden větší, tak mě to barevně upozorní a já mohu přednostně tato položky vyrobit a zavčas zjistit kdyby na skladě vznikl nějaký problém z materiálem. Jenže to bohužel musím procházet ručně a neustále kontrolovat.

Dřív jsem to měl řešené přes autiomatický filtr. V sloupci A byla funkce "Když", pokud byla splněná některá z podmínek tak se ve sloupci A doplnila 1. Pak stačilo pomocí filtru vyfiltrovat 1 a bylo hotovo. Bohužel dnes to nejde. Data v tabulce jsou plněna dotazem SQL z databáze firmy a při každé aktualizaci se mě vzorce smažou. Takže bych to nějak potřeboval vyřešit nejspíš makrem a tlačítkem.

Re: EXCEL - filtr

Napsal: 01 bře 2012 08:00
od guest
Vyřešte to samotným SQL dotazem a nezabývejte se dvě hodiny makrem pod VBA.

Re: EXCEL - filtr

Napsal: 01 bře 2012 08:28
od Pavel1234
Dobrý den.
Jestli jsem to správně pochopil, tak podmíněný formát vám funguje. Tak proč nepoužít filtr podle barvy?

Pavel

Re: EXCEL - filtr

Napsal: 01 bře 2012 09:39
od stejzi
Bohužel mám Excel 2003 a ten to ještě neumí, doma jsem to zkoušel na 2007. Tam to šlo.

Re: EXCEL - filtr

Napsal: 03 bře 2012 17:11
od Pavel1234
Zdravím.
OK. Tak co makro co skryje řádky splňující podmínku. Je nutné aby ve sloupci smyčky nebyla prázdná buňka.

Kód: Vybrat vše

Sub Skryt_Radky()
'Makro projde tabulku a skryje řádky splňující podmínku
'Začne na řádku 2 a skončí na první prázdné buňce ve sloupci E
   
    Const E As Long = 5 'Sloupec E
    Const F As Long = 6 'Sloupec F
   
    Dim Radek As Long
    Radek = 2           'Začít na řádku 2
   
    Do While Cells(Radek, E) <> ""
        'Podmínka
        If Cells(Radek, E).Value > Cells(Radek, F).Value + 1 Then
            Rows(Radek).Hidden = True   'Podmínka splněna tak skrýt
        End If
       
        'Další řádek
        Radek = Radek + 1
       
    'Znovu
    Loop

End Sub
.

Pro znovuzobrazení skrytých řádků lze využít menu nebo toto makro

Kód: Vybrat vše

Sub Zobrazit_Radky()
    Rows.Hidden = False
End Sub


Snad to pomůže
Pavel

Re: EXCEL - filtr

Napsal: 03 bře 2012 19:57
od Azuzula
Třeba to odmítnete, ale tohle je další alternativa.
Makrem zapsat vzorec do všech buněk sloupce podle množství dat. Stejně tak jako jste to měl předtím i s tou filtrací ;-)

Kód: Vybrat vše

Sub zapis()
Dim a As Double
a = Cells(Rows.Count, 2).End(xlUp).Row 'číslo 2 udává sloupek kde se počítá počet řádků
    Range("A2").Select
    Range("A2").FormulaLocal = "=když(B2=""text"";1;"""")" 'zapsaný vzorec do buňky, jen nezapomeňte zdvojovat uvozovky ve vzorci aby se do buňky zapsal správně.
    Selection.AutoFill Destination:=Range("A2:A" & a), Type:=xlFillValues 'kopírování vzorce dolů až k poslednímu záznamu
End Sub

Re: EXCEL - filtr  Vyřešeno

Napsal: 05 bře 2012 07:34
od stejzi
Díky, tohle jsem přesně potřeboval. :thumbsup: