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 28 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
-
- 16
- 6371
-
od mirekol
Zobrazit poslední příspěvek
20 říj 2023 08:31
-
- 2
- 1857
-
od honzzicek
Zobrazit poslední příspěvek
01 črc 2023 08:57
-
- 3
- 2058
-
od Story-Long
Zobrazit poslední příspěvek
14 srp 2023 10:11
-
- 1
- 451
-
od Grimm
Zobrazit poslední příspěvek
12 bře 2024 21:43
-
-
Excel komparacedvou soborů Příloha(y)
od teichmann.ondrej » 15 dub 2024 17:26 » v Kancelářské balíky - 11
- 3410
-
od teichmann.ondrej
Zobrazit poslední příspěvek
22 dub 2024 15:45
-
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 31 hostů