Zaslal/a Klamerka 5.12.2019 8:33
Zdravím
Mám sešit se dvěma listy. V jednom listu je tabulka se záznamy (logy) příjmů a výdejů jednotlivých komponent ve skladu. V druhém listu se pokouším dát dohromady makro, které mi hromadně vyexportuje skladovou kartu ke každému z materiálů a to v rozmezí datumu, který si zvolím.
Umím si udělat makro, která mi vyexportuje vyfiltrované data hromadně do .pdf souborů pomocí cyklu, ale narazil jsem na dva problémy:
Mám sešit se dvěma listy
- POHYBY: Obsahuje tabulku, kde se logují vstupy a výstupy jednotlivých materiálů
- SKLADOVE_KARTY: Rozhraní, kde si uživatel zvolí konkrétní materiál a časové období, které jej zajímá
Pokouším se udělat makro, které mi:
- Na základě požadavku vyfiltruje data z tabulky v listu POHYBY do listu SKLADOVE_KARTY
- Před vyfiltrované data vloží řádek s počátečním datumem období, které mě zajímá
- Za vyfiltrované data vloží řádek s konečným datumem období, které mě zajímá
- Vyexportuje takto vytvořený list do .pdf a uloží do složky.
Jednou ročně budu potřebovat vyexportovat skladovou kartu ke každému materiálu, takže si umím udělat makro, které mi pomocí cyklu FOR automaticky doplní vstupní formulář a vyexportuje. Narazil jsem ale na problém, kdy nedokážu vyfiltrovat data. Už jsem i převzal kód z příkladu na internetu, ale příklad funguje, ale v mém sešitu ne. Mnohokrát jsem již prošel a krokoval, ale nepřišel jsem na to, kde dělám chybu. Nevím, jak vložit řádek za vyfiltrovanou tabulku, když je délka tabulky proměnná, ale předpokládám použití podmínky a hledání prázdného řádku. Zastavil jsem se ale na tom filtrování a bez něj nemohu pokračovat.
Mohu poprosit, jestli by se někdo nekoukl a nezkontroloval, kde mám v kódu chybu?
Sub FILTRUJ_SKLADOVE_KARTY()
Sheets("SKLADOVE_KARTY").Select
Range("A10").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Clear
Sheets("POHYBY").Range("LOG_POHYBU[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Sheets("POHYBY").Range("K1:K2"), CopyToRange:=Sheets("SKLADOVE_KARTY").Range("A10"), Unique:=True
Columns.AutoFit
Range("A10").Select
End Sub
elninoslov napsal/a:
Zbytočné je aj filtrovanie FILTR_DATUM a FILTR_DATUM_2 na skladovej karte, veď tam iné dátumy byť nemôžu, keď ich tam nafiltruje podľa rovnakých kritérií z rovnakých buniek pred tým Rozšírený filter.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.