Avatar uživatele
Registrovaný

Excel VBA makro - tisk všech možností podmíněného seznamu, jak upravit vzorec/makro?

Dobrý den,

potřeboval bych poradit, jak upravit makro tak, aby fungovalo s podmíněným seznamem v Excelu. Chyba se objevuje v řádku Set xRgVList = Evaluate(xRg. Validation. Formula1) z důvodu, že seznam vytvářím s pomocí vzorce NEPŘÍMÝ.ODKAZ. Pokud vzorec vyměním seznamem z přesně určené tabulky, vše funguje jak má. Využití nepřímého odkazu je však nutné, jelikož se jedná o podmíněný seznam. Přikládám kód z VBA.


Sub Iterate_Through_data_Validatio n()
Dim xRg As Range
Dim xCell As Range
Dim xRgVList As Range
Set xRg = Worksheets("Nový_2018_VB"). Range("D4")
Set xRgVList = Evaluate(xRg. Validation. Formula1)
For Each xCell In xRgVList
xRg = xCell.Value
ActiveSheet.PrintOut
Next
End Sub

DOPLNĚNÍ:

aby to bylo jednodušší, zde odkaz na jednoduchý dokument, který vysvětluje, co vlastně chci. Je v něm i makro, které jsem použil a princip, ze kterého vycházím: http://leteckaposta.cz/…
Bohužel z důvodu GDPR nemohu použít přímo dokument, který potřebuji upravit, ale tento je úplně stejný, jen s jinými daty.

Nejlepší odpověď

Avatar uživatele
Zlatý

nahoď sem ty vzorce, fungující i ten nefungující vzorec
---
Jak to tak zkoumám, tak problém je asi jen v té češtině ve vzorci, prostě chroustá to jen anglické vzorce. Pokud se tedy chceš držet tohoto již navrženého postupu, tak je nutné to řešit např. takto:

toto:
Set xRgVList = Evaluate(xRg. Validation. Formula1)

nahradit tímto:
Set xRgVList = Evaluate("=INDIRECT($A$2)")

On je totiž problém, že zatímco u buněk si lze nechat vypsat jak originální, tak lokální vzorec, tak u toho ověření lze vypsat jen lokální a naopak ta funkce Evaluate zas umí vyhodnotit jen originální (anglický) vzorec. Pro přeložení by šlo třeba použít nějakou buňku, ale to je takové ještě divnější řešení, než to vložení vzorce natvrdo do makra.
Pak je variantou to úplně přepsat, ale to bych musel vědět, jak si to přesně představuješ, abych ti mohl pomoct. Já osobně bych ty seznamy přes formuláře, to by bylo takové víc profi, třeba už v tom, že změnou země hned načteš platná města (a nebude ti tam viset to město ze státu, který byl vybrán před změnou země).

 

Další odpovědi:

Avatar uživatele
Zlatý

Popravdě už dlouho jsem s VBA makry nedělal, tak nevylučuji, že budu úplně mimo.

Domnívám se, že Excel není schopen/brání se zjistit že je nutné provést makro protože došlo někde v tabulce ke změně. Zkrátka některé konstrukce vůbec nedovolí, protože by (čistě teoreticky) mohlo dojít k nesprávnému vyhodnocení nebo zacyklení výpočtu. Pak bys musel sám provést to vyhodnocení odkazu v makru a nenechávat to na excelu.

Ber to prosím jen jako myšlenku vhodnou k prověření, možná jsem opravdu mimo...

 

Diskuze k otázce

 

U otázky nebylo diskutováno.

 

Zajímavé otázky v kategorii Počítače a internet

Přihlásit se

Položte otázku, odpovězte, zapojte se, …

začněte zde

Reklama

Kvalitní odpovědi v: Počítače a internet

Zlatý Bedy 1527
Zlatý ge0rge 1236
Zlatý Michal Kole 1199
Zlatý mosoj 1101
Zlatý Hlada 1025
Zlatý led 1001
Zlatý gecco 904
Zlatý www 828
Zlatý badisko 817
Zlatý cochee 738

Zobrazit celkový žebříček

Facebook

 

Váš požadavek se vyřizuje, počkejte prosím.