Ahoj všem a hlavně návštěvníkovi,
mám problém s automatickou aktualizací listboxů. Potřebuji makro které mi při každé změně buňky "C3" na listu "Main" zaktualizuje listbox "B".
Ve výsledku by to mělo fungovat tak že když vyberu v listboxu název třeba "Višeň", zobrazí se hodnoty v listboxu vedle (P,Q,R,S,T) - dle zdroje na listu "Source".
Myslíte že by to šlo nějak naprogamovat ??
Díky předem ...
Excel VBA - Worksheets Change
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Excel VBA - Worksheets Change
- Přílohy
-
- test.xlsm
- (39.83 KiB) Staženo 32 x
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - Worksheets Change
Reseni muze byt nasledujici:
Vyber v listbox nevyvola udalost. Takze je potreba vlozit na list Main do vhodne bunky napr. H2 funkci =NÁHČÍSLO() nebo =DNES(), ktera je pri zmenach na listu volana a pak pouzit udalost Worksheet_Calculate.
Na listu Source jsou vytvoreny pojmenovane oblasti (nazev): Jabloň =Source!$D$2:$D$7 a dalsi. Muzes take pouzit dynamicke pojmenovane oblasti vice viz http://www.officir.ic.cz/chipex04/03/ex ... avani.html
V udalostni procedure vlozene do modulu listu Main:
je vkladana do vlastnosti listboxu B.ListFillRange hodnota z C3. Aby nedochazelo ke zbytecnemu vkladani hodnoty , je testovana zmena obsahu C3 oproti ulozene hodnote v pomocne bunce, zvolil jsem Main!I2.
PS.: Vsechny jine procedury jsem pri overovani deaktivoval, takze je budes muset pripadne prizpusobit, aby nekolidovaly s uvedenym resenim.
Vyber v listbox nevyvola udalost. Takze je potreba vlozit na list Main do vhodne bunky napr. H2 funkci =NÁHČÍSLO() nebo =DNES(), ktera je pri zmenach na listu volana a pak pouzit udalost Worksheet_Calculate.
Na listu Source jsou vytvoreny pojmenovane oblasti (nazev): Jabloň =Source!$D$2:$D$7 a dalsi. Muzes take pouzit dynamicke pojmenovane oblasti vice viz http://www.officir.ic.cz/chipex04/03/ex ... avani.html
V udalostni procedure vlozene do modulu listu Main:
Kód: Vybrat vše
Option Explicit
Private Sub Worksheet_Calculate()
With Me
If .Range("c3").Value <> .Range("i2").Value Then ' je zmena v C3?
Application.EnableEvents = False
.Range("i2").Value = .Range("c3").Value ' ulozit novou hodnotu z C3
.B.ListFillRange = .Range("c3").Value ' vlozit doB.ListFillRange odkaz
Application.EnableEvents = True
End If
End With
End Sub
je vkladana do vlastnosti listboxu B.ListFillRange hodnota z C3. Aby nedochazelo ke zbytecnemu vkladani hodnoty , je testovana zmena obsahu C3 oproti ulozene hodnote v pomocne bunce, zvolil jsem Main!I2.
PS.: Vsechny jine procedury jsem pri overovani deaktivoval, takze je budes muset pripadne prizpusobit, aby nekolidovaly s uvedenym resenim.
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - Worksheets Change
Super, díky moc za pomoc ... Odzkouším, popřípadě upravím ... Ještě jednou díky ...
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 2
- 12867
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 6130
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
-
- 3
- 3815
-
od lubo.
Zobrazit poslední příspěvek
24 říj 2024 00:00
-
-
Excel 2016 - vzorec kombinace podmínek Příloha(y)
od MK_Vs » 08 led 2025 17:56 » v Kancelářské balíky - 5
- 4637
-
od lubo.
Zobrazit poslední příspěvek
14 led 2025 00:51
-
-
- 5
- 4472
-
od atari
Zobrazit poslední příspěvek
26 dub 2025 09:11
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti