rozbalovací seznam - aby byl pořád vidět

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

Moderátor: Mods_senior

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3207
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

rozbalovací seznam - aby byl pořád vidět

Příspěvekod atari » 04 dub 2015 20:21

Ve sloupci C mám vytvořený rozbalovací seznam (pomocí ověření dat). Pokud ho chci použít tak musím nejdříve na buňku vložit kurzor (zdržuje to), a pak teprve kliknu na šipku, co jsou dva úkony. Potřebuji nějak zrušit ten první klik umístění kurzoru, prostě aby ta šipečka byla aktivní pořád a mohl na ní klikat bez umístování kurzoru. Je to možné nějak vymyslet?
Přílohy
Vydaje15.xlsx
(10.73 KiB) Staženo 42 x

Reklama
guest
Pohlaví: Nespecifikováno

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod guest » 05 dub 2015 00:38

a) Ne, s Data / Ověření ne. Jak funguje, víte - po aktivaci buňky. Nečekáte, že se buňka aktivuje na "hover", tj. po najetí kurzoru myši, že ne? Teoreticky lze odchytávat událost Selection_Change a po aktivaci buňky rozbalit roletku (ALT + šipka dolů).
b) Použijte ActiveX prvky Seznam nebo Pole se seznamem (ListBox, ComboBox).

Dovedu si představit, že se tohle vlákno rozroste - vyhledávání v prvku, prvky nebudou držet na místě, problémy s tiskem, počet zobrazených položek, ...

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3207
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod atari » 07 dub 2015 12:44

Děkuji za odpověď.
Co setýče ActiveX, tak jsem to zkoušel, a to není řešení, protože ovládací prvek lze propojit jenom s jednou buňkou, a já to potřebuji na celý sloupec (alespoň mě se to tedy na celý sloupec nepovedlo). EDIT - dodatečná oprava: lze to, ale já to neumím !!

Jako schůdné se mi jeví zachytávat událost Selection_Change, ale zatím se mi nepovedlo, aby VBA uměl udělat ALT + šipka dolů. Tak teď laboruji s použitím Userform.

Ohledně DATA / "Ověření dat" (možná u toho skončím, pokud nic nevymyslím) jsem ještě zjistil jednu "závadu", a sice když se kukrzorem vrátim na již vyplněnou buňku, tak se obsah buňky automaticky vymaže.
Naposledy upravil(a) atari dne 07 dub 2015 16:10, celkem upraveno 2 x.

Uživatelský avatar
eLCHa
Level 1
Level 1
Příspěvky: 72
Registrován: duben 10
Bydliště: Ostrava
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod eLCHa » 07 dub 2015 15:32

atari píše:Co setýče ActiveX, tak jsem to zkoušel, a to není řešení, protože ovládací prvek lze propojit jenom s jednou buňkou, a já to potřebuji na celý sloupec (alespoň mě se to tedy na celý sloupec nepovedlo).

Nepište, že něco lze nebo nelze, pokud si tím nejste jistý a jen si to myslíte. Někdo si to přečte a bude si to myslet také.
Např. ListBox nebo ComboBox mají vlastnost ListFillRange
Takže koukněte na ListBox ve spojení s touto vlastností.
eL CHá ;)

Kdo hledá, najde. Jenom je třeba hledat pořádně. Zkuste tohle- opravdu to funguje ;)
No vidíš, když se díváš pořádně, tak jedou ;)

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3207
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod atari » 08 dub 2015 10:27

Tak to upřesním:
Vlastnost ListFillRange je oblast zdroje dat, kde lze zadat větší oblast buněk.
Vlastnost LinkedCell je buňka, se kterou je prvek propojený (neboli kam se umísťuje hodnota), a to lze opravdu propojit jen s jednou buňkou. Já to potřebuji na celý sloupec (vždy na řádek, který edituji)
.
Tak jsem zkoušel měnit hodnotu LinkedCell přes VBA:
Zápis: ListBox1.LinkedCell = "a1" funguje (zde však nemohu měnit hodnotu)
Zápis: ListBox1.LinkedCell = Cells(1, 1) nefunguje.

Jenže já tu hodnotu potřebuji měnit přes VBA. Má někdo nápad jak to vyřešit, nebo jestli něco dělám špatně?

Kód: Vybrat vše

Private Sub ListBox1_Click()
'ListBox1.LinkedCell = "a1"
ListBox1.LinkedCell = Cells(1, 1)
End Sub
Přílohy
Vydaje15.xlsm
(19.36 KiB) Staženo 49 x

Uživatelský avatar
eLCHa
Level 1
Level 1
Příspěvky: 72
Registrován: duben 10
Bydliště: Ostrava
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod eLCHa » 08 dub 2015 12:20

Moc nerozumím, přijde mi to jako něco jiného než jste se ptal v úvodním příspěvku...
Ale zřejmě chcete

Kód: Vybrat vše

ListBox1.LinkedCell = Cells(1, 1).Address
eL CHá ;)

Kdo hledá, najde. Jenom je třeba hledat pořádně. Zkuste tohle- opravdu to funguje ;)
No vidíš, když se díváš pořádně, tak jedou ;)

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3207
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod atari » 08 dub 2015 12:49

Díky moc, to je přesně ono.
Možná jsem se v úvodu nepřesně vyjádřil. Potřebuji do A1 zadat částku, a vedle do B1 vybrat hodnotu k čemu to patří (ze seznamu předdefinovaných hodnot). A pak A2 a B2 atd. A chtěl jsem, abych při tom výběru v "B" nemusel ten seznam hodnot rozklikávat, prostě aby byl pořád otevřený.

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3207
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod atari » 09 dub 2015 12:24

Tak přesně tohle jsem potřeboval (v příloze). Když kdekoliv ve sloupci D vložím kurzor, tak aby se mi u toho zobrazil již otevřený seznam hodnot, ze které si jedním kliknutím myši vyberu.
Přílohy
Vydaje15.xlsm
(23.89 KiB) Staženo 70 x

VOM
Level 1.5
Level 1.5
Příspěvky: 114
Registrován: srpen 10
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod VOM » 13 dub 2015 08:44

Dobrý den
doplnil bych ještě
do yes větve ListBox1.Visible = True
a do no větve ListBox1.Visible = false

Aby poloha lisboxu nezávisela na velikosti písma v buňce tak snad
ListBox1.Top = Target.Top + ActiveCell.Height
ListBox1.Left = Target.Left + ActiveCell.Width

Prosím o vysvětlení jak se docílí toho, aby nehavarovalo, když už je v buňce jiná hodnota než se očekává.
děkuji
Milan

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3207
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod atari » 13 dub 2015 11:58

VOM píše:do yes větve ListBox1.Visible = True
a do no větve ListBox1.Visible = false.
Tohle jsem nepochopil, můžeš to nějak zkonkretizovat?

Poloha je dobrý nápad, jen jsem to upravil takto:
ListBox1.Top = Target.Top
ListBox1.Left = Target.Left + ActiveCell.Width

Aby makro nehavarovalo, tak stačí ošetřit aktivní buňku, zda obsahuje jiný text než v Listboxu, a pak ji vymazat. Toto ošetření však pro mě není žádoucí, protože tato situace by teoreticky neměla nastat. A pokud nastane, tak mě alespoň chybová hláška upozorní, a já budu moci provést kontrolu, kde se stala chyba.

VOM
Level 1.5
Level 1.5
Příspěvky: 114
Registrován: srpen 10
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod VOM » 13 dub 2015 13:30

zdravím pěkně
takhle
If sloupec = 5 Then

ListBox1.Visible = True

ListBox1.Top = Target.Top + ActiveCell.Height
ListBox1.Left = Target.Left + ActiveCell.Width

ListBox1.LinkedCell = Cells(radek, 5).Address

Else
ListBox1.Visible = False
End If
Milan

--- Doplnění předchozího příspěvku (13 Dub 2015 13:30) ---


Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3207
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: rozbalovací seznam - aby byl pořád vidět

Příspěvekod atari » 17 dub 2015 09:21

Tak jsem zrušil Listbox jako ActiveX, a předělal to na formulář. Potřeboval jsem, abych mohl ze seznamu vybírat šipkama (abych nemusel pořád šahat na myš). Jako ActiveX se mě nepodařilo to udělat na ovládání šipkaka, formulář to dělá automaticky. Mám dotaz:

Jak to udělat, abych ten formulář mohl zavřít stiskem "ENTER" na klávesnici. To jsem nikde nenašel. (Prostě abych vůbec nemusel používat myš.)
(Zatím to dělám tak, že klávesou "Tab" si přepnu kurzor na tlačítko "Zavři" a pak už přes ENTER formulář zavřu, ale ten "TAB" je už to klik navíc.)

Poznámka: mám to udělané tak, že formulář se objevuje, jen když je kurzor ve sloupci E.
Přílohy
Vydaje15_verze_formular.xlsm
(25.25 KiB) Staženo 57 x


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • NTB s Win 11 přestal vidět Choetech USB Hub 9v1 Příloha(y)
    od EZumrova » 14 pro 2023 09:02 » v Problémy s hardwarem
    8
    1000
    od mmmartin Zobrazit poslední příspěvek
    16 pro 2023 22:28
  • Extérní SSD disk nejdou vidět soubory
    od Dexolus » 13 pro 2023 16:18 » v Problémy s hardwarem
    4
    1071
    od petr22 Zobrazit poslední příspěvek
    14 pro 2023 07:58
  • Je Comodo Firewall pořád bezpečný? Příloha(y)
    od Grander » 04 bře 2024 15:50 » v Vše ostatní (bezp)
    5
    2730
    od richchie Zobrazit poslední příspěvek
    09 bře 2024 22:12
  • Opera a Seznam.cz
    od byron » 25 úno 2024 10:15 » v Internet a internetové prohlížeče
    3
    731
    od mmmartin Zobrazit poslední příspěvek
    25 úno 2024 11:50
  • Seznam Doplněk – Email
    od jokabuki » 06 říj 2023 12:50 » v Internet a internetové prohlížeče
    1
    3597
    od KubaCZE Zobrazit poslední příspěvek
    21 úno 2024 20:00

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

Kdo je online

Uživatelé prohlížející si toto fórum: Facebook [Bot] a 14 hostů