Stránka 1 z 1

Filtr nebo makro?

Napsal: 27 říj 2006 10:12
od Olorea
ahoj, potrebovala bych poradit s nasledujicim problemem: mam v excelu tabulku na vypocet ukolove mzdy, takze nazev - kč/ks - počet vyrobenych kusu - funkce počet * kč/ks, a potrebovala bych docilit toho, aby se, napr. na druhy list, zkopirovaly jenom radky s nenulovym vysledkem..

Napsal: 27 říj 2006 10:28
od Olorea
tak uz vim, automatickym filtrem jde vyfiltrovat nenulovy polozky, akorat bych potrebovala aby to bylo uzivatelsky prijemnejsi

Napsal: 27 říj 2006 12:58
od mmmartin
Do cílové buňky na druhém listu dáš: +když(zdrojovábuňka=0;"";zdrojovábuňka). zdrojovábuňka je souřadnicové označení buňky (např. b2), ve které je přenášené číslo.

Napsal: 27 říj 2006 13:18
od Olorea
dekuju, tamto z jsem vyresila filtrem a kaslu na to, ale horsi je, ze bych potrebovala nektery bunky zamknout, coz jsem vyresila vyjmutim nekolika bunek ktery muzou zustat po zamknuti listu otevreny, jenze to mi pak zase nefacha filtrovani, i kdyz mam filtrovany bunky odemknuty :cry: Daji zamknout bunky nejak jednotlive?

Napsal: 27 říj 2006 13:22
od mmmartin
Pokud vím ne. Buˇka se zamkne zamknutím listu, buňky, které musí zůstat v zamčeném listu odemčené, se označují ve formátu, ale to jistě víš sama :smile:

Napsal: 27 říj 2006 13:25
od mmmartin
Asi by pomohlo makro, který by napřed odemklo list, pak aplikovalo filtr a zase list zamklo.

Napsal: 27 říj 2006 13:29
od Olorea
no potes koste, jeste makro do toho, ja jsem se makrum chtela vyhnout :twisted: ale diky za pomoc :smile:

Napsal: 28 říj 2006 12:04
od mikel
Maker se bát nemusíš. :wink: Podívej, jak stručně se to dá vyřešit:

Kód: Vybrat vše

Sub FiltrZero()
  ActiveSheet.Unprotect
  Set Start = Range("D2")
  For Each Mzda In Range(Start, Start.End(xlDown))
    If Mzda.Value = 0 Then Mzda.EntireRow.Hidden = True
  Next Mzda
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Sub CancelFilter()
  ActiveSheet.Unprotect
  Cells.EntireRow.Hidden = False
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

První makro (FiltrZero) odemkne list, skryje všechny řádky s nulovým výsledkem a zamkne zase list. Stačí abys jenom do Range("D2") napsala místo D2 první buňku s výsledkem, podle tvé tabulky.
Druhé makro (CancelFilter) zase odemkne list, zobrazí všechny skryté řádky a zase list zamkne.

Stačí, aby sis přes panel Formuláře vložila vedle tabulky 2 tlačítka, každému přiřadila jedno z maker, a pak už bude celá záležitost vyřízená jedním klikem na příslušné tlačítko. :D