Excel (vba) - změna v buňce spustí makro

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Andrea320
nováček
Příspěvky: 2
Registrován: říjen 19
Pohlaví: Žena

Excel (vba) - změna v buňce spustí makro

Příspěvekod Andrea320 » 29 říj 2019 06:49

Dobrý den,
prosím potřebovala bych pomoct s excelem (vba) - v buňce E34 mám rozevírací seznam, který obsahuje hodnoty ANO, NE nebo prázdné. Pokud je zvoleno ANO skryje mi určité řádky, jinak jsou řádky odkryty. Mám napsané makro které tohle dělá viz níže, problém ale nastane když udělám změnu kdekoliv jinde na listu (napíšu něco do jiné buňky) tak se spustí příslušný úkon podle toho co je ve výše zmiňované buňce označeno (ANO,NE). Ono samozřejmě neskrývá/neodkrývá řádky - protože hodnota buňky se nezměnila, ale překlikne se na buňku F34 (pokud ten řádek v kódu smažu tak označí tu oblast řádku podle toho co je uvedeno v kódu). Je to docela protivný protože když jsem např. na řádku 150 tak mě to při každé změně jakékoliv buňky hodí na F34. Asi tam mám špatně nastaveny ty Application.EnableEvents ale vůbec nevím jak to upravit, zkouším to už třetí den a začínám být z toho zoufalá :-/
Níže přikládám makro, moc děkuji za jakoukoliv pomoc.
Andrea


Private Sub worksheet_change(ByVal target As Range)
Set target = Range("E34")

If target.Value = "ANO" Then
Application.EnableEvents = False
Rows("35:49").Select
Selection.EntireRow.Hidden = True
Range("F34").Select
Application.EnableEvents = True
Else
Application.EnableEvents = False

Rows("34:50").Select
Selection.EntireRow.Hidden = False
Range("F34").Select
Application.EnableEvents = True

End If

End Sub



Reklama
Uživatelský avatar
Grimm
Level 1
Level 1
Příspěvky: 84
Registrován: září 17
Pohlaví: Muž

Re: Excel (vba) - změna v buňce spustí makro

Příspěvekod Grimm » 30 říj 2019 06:13

Co takto viz soubor?
Nemáte oprávnění prohlížet přiložené soubory.

Andrea320
nováček
Příspěvky: 2
Registrován: říjen 19
Pohlaví: Žena

Re: Excel (vba) - změna v buňce spustí makro

Příspěvekod Andrea320 » 30 říj 2019 09:48

Super, funguje dokonale, moc děkuji :-)

Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 18989
Registrován: květen 07
Pohlaví: Muž

Re: Excel (vba) - změna v buňce spustí makro

Příspěvekod X » 30 říj 2019 09:52

Jako základ postačí, lze to však udělat hned v několika ohledech elegantněji:

1) nemusí se použít rozevírací seznam s volbou hodnoty, stačí prosté kliknutí na buňku s efektem kurzoru ručičky (odkaz) nad buňkou - postačí mít nad buňkou neviditelný obrázek a přiřadit mu makro

2) pro snadnou manipulaci - vkládání dalších řádků do skrývané oblasti či mazání řádků bez nutnosti přepisovat čísla řádků skrývané oblasti ve VBA - vřele doporučím použít vlastní název buňky

3) není nutné používat cyklus (If ... Then ... Else) stačí prostá negace (NOT)

4) lze použít buňku VŠE, po jejímž kliknutí se všechny definované oblasti skryjí či objeví, dle předešlého stavu, stačí jednoduchý kód (VBA)

OBRÁZKY
► Zobrazit spoiler

NEVIDITELNÝ OBRÁZEK
► Zobrazit spoiler
Nemáte oprávnění prohlížet přiložené soubory.

Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 18989
Registrován: květen 07
Pohlaví: Muž

Re: Excel (vba) - změna v buňce spustí makro

Příspěvekod X » před 40 minutami

Ještě jsem svůj postup trochu vylepšil a pokud potřebujete více oblastí které skrýváte (kolaps) a odkrýváte (expand), jistě vám toto vylepšení přijde vhod:

- zbavme se nadbytečných příkazů: ActiveSheet., protože každá tečka v příkazech prodlužuje časovou náročnost vykonání + nemusíme psát příkaz Call, v tom případě se pro parametry nesmí psát závorky!

- použijme makro s parametry (tedy technicky vzato proceduru), sice jakmile v Excelu ve VBA napíšeme sub s parametry, tak se nám ztratí z přehledu maker pro vybrání (zde technicky zdatní uživatelé / programátoři - jistě zavětří, protože na českém webu jsem o tom nenašel jedinou zmínku a tak nejspíš minimálně v ČR tento trik nebude známý), ale pomocí malého hacku jsou možná i "makra" s parametry. Do tabulky si je zapíšeme ručně (či zkopírujeme a vložíme), tvar zápisu pro "makro" se 2 řetězcovými parametry:

Kód: Vybrat vše

'jmenomakra "parametr1", "parametr2"'

Pokud parametr nebude řetězec (string), bude číslo bez uvozovek!

Obrázek

Obrázek


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Excel - makro na sledování změny v buňce
    od Joselinne » 04 lis 2019 20:57 » v Kancelářské balíky
    0
    373
    od Joselinne
    04 lis 2019 20:57
  • EXCEL makro - změna velikosti komentářů
    od Hurtol » 15 zář 2019 09:41 » v Kancelářské balíky
    4
    867
    od Hurtol
    18 zář 2019 20:43
  • Makro - změna hodnoty -> změna zabarvení obrázku
    od Kevis » 04 led 2019 09:59 » v Kancelářské balíky
    3
    816
    od xlnc
    04 led 2019 15:02
  • Excel - rozklikávací seznam v buňce nefunguje po odeslání/uložení souboru
    od Radkli » 14 srp 2019 16:25 » v Kancelářské balíky
    3
    1044
    od xlnc
    21 říj 2019 10:32
  • Excel - makro -pdf z vybraných buněk
    od Helo_ush » 09 bře 2019 21:13 » v Kancelářské balíky
    1
    571
    od karlos64
    10 bře 2019 00:06

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot], Google [Bot] a 3 hosti