Potřeboval bych makro, které by umělo:
1. v sheetu 2012 se vyfiltrují pouze řádky, kde je vyplněno datum nalinkování
2. postupně se vyfiltruje každá kategorie a výsledky se zkopírují do samostatných sheetů (naznačeno v příloze + ukázkové makro)
3. každý vygenerovaný sheet se uloží jako html (ukázkové makro)
Krok 2 a 3 pro další kategorie jsem chtěl udělat zkopírováním ukázkového makra, ale snad to půjde jednodušeji.
Doplnění k:
2. karegorie bych rád měl v samotném sheetu (data) a při doplnění další kategorie by s ní makro mělo umět pracovat
2. kategorie bude víceslovný název, ale může ji být pro potřeby excelu/VBA přiřazen i zkrácený název (např. ru tvrdý - rum_tvrdy)
2. a 3. pokud přidám nový řádek (třeba víno), nechci, aby se provádělo makro pro ostatní kategorie - těch bude cca 50 a zdržovalo by to
Děkuji za pomoc.
--------------------------------------------------------------------------------------------------------------------------------------
staré zadání
Ahoj,
šlo by udělat makro na generování dalšího makra?
Vysvětlím. Mám řekněme makro 1 (jen příklad), ve kterém jsou dvě proměnné (promennaA a promennaB).
Chci makro, které mi pro zadání těchto proměnných vyhodí kód, který je bude obsahovat.
Kód: Vybrat vše
Sub promennaB()
Sheets("Sheet1").Select
ActiveSheet.Range("$A:$B").AutoFilter Field:=1, Criteria1:="promennaA"
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("promennaB").Select
ActiveSheet.Paste
End Sub
Ideální by bylo, kdyby šlo zadat hodnoty tabulkou a vygenerovalo by se tolik kódů, kolik bude v tabulce řádků (případně zadávat jednotlivě).
Tabulka 1 - vygeneruje 2 kódy
Kód: Vybrat vše
promenna1A promenna1B
promenna2A promenna2B
Výsledek by byl
Kód: Vybrat vše
Sub promenna1B()
Sheets("Sheet1").Select
ActiveSheet.Range("$A:$B").AutoFilter Field:=1, Criteria1:="promenna1A"
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("promenna1B").Select
ActiveSheet.Paste
End Sub
Sub promenna2B()
Sheets("Sheet1").Select
ActiveSheet.Range("$A:$B").AutoFilter Field:=1, Criteria1:="promenna2A"
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("promenna2B").Select
ActiveSheet.Paste
End Sub
Výstup by sesá zapsal jako nové makra do modulu (nejde?), nebo jako text a do VBA by se ručně zkopíroval.
Šlo by něco takového vyrvořit (za použití kompromisů)?
Děkuji za pomoc,
Jirka.