< návrat zpět

MS Excel


Téma: Seznam položek rss

Zaslal/a 23.9.2015 8:17

Prosím o radu - potřebuji, aby se po kliknutí na buňku někde vedle ní objevil rozpad položek. Příklad: V buňce je napsáno "administrativa" a po kliknutí se objeví pod sebou řazené "poštovné, kopírování, telefonování..." Něco jako je Vložit komentář, ale aby se to objevovalo po kliknutí a "napevno" třeba v nějakém novém poli. Dík

Zaslat odpověď >

Strana:  1 2   další »
#027031
netopier13
karta udaje/overenie udajov/nastavenia/povolit-zoznamcitovat
#027035
avatar
Ověření dat (slovensky udaje) není ono, nechci rozbalovací roletku a výběrem položek. Jen informativní rozpad, spíš formou odkazu.citovat
#027036
avatar
Bez VBA mne nenapadá nic. Pomocí VBA by to snadno zvládla kombinace události Worksheet.SelectionChange např. s TextBoxem, Který by událost plnila a také zobrazovala/skrývala. Něco takového už jsem dělal a dopadlo to uživatelsky přívětivě.citovat
#027047
avatar
Že by pomohly souhrny nebo kontingenční tabulka?citovat
#027058
elninoslov
Ak to dobre chápem, možno by to mohlo byť aj takto.
Příloha: rar27058_txt-pole.rar (18kB, staženo 24x)
citovat
#027060
avatar

elninoslov napsal/a:

Ak to dobre chápem, možno by to mohlo byť aj takto.Příloha: 27058_txt-pole.rar


Snad to funguje, ale píše mi to run-time error a "Shapes("TextBox 1").Visible = False"citovat
icon #027061
eLCHa
Mno, on El Niño, když něco dělá večer, tak už se tak nesoustředí ;))
Snad se na mně nebude zlobit, když to trochu popoženu ;)

Má tam jednu nepřesnost v řádkuSet Klik = Intersect(Columns(2), Target.Cells(1, 1))A další důvod proč to nejede a proč do toho vstupuji není jeho chybou, ale je to opět ta lokalizace.
Shapes("TextBox 1") mám já v českém excelu 2007 jako Shapes("BlokTextu1")

Abyste otestovala, tak to zatím sjednotíme na 1. Zkuste a dejte vědět, jestli je to to, co jste chtěla.
Nahraďte si jeho kód tímto:Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Klik As Range, TX As String, Stlpcov As Integer, dStlpec As Integer, dRiadkov As Integer
Set Klik = Intersect(Columns(2), Target.Cells(1).EntireRow)
If Not Klik Is Nothing Then
If Klik.Value = "" Or Klik.Row < 2 Then
Shapes(1).Visible = False
Else
With Worksheets("Data")
Stlpcov = .Cells(1, Columns.Count).End(xlToLeft).Column
If Stlpcov = 1 And .Cells(1, 1) = "" Then Shapes("TextBox 1").Visible = False: Exit Sub
On Error Resume Next
dStlpec = WorksheetFunction.Match(Klik, .Cells(1, 1).Resize(, Stlpcov), 0)
dRiadkov = .Cells(.Rows.Count, dStlpec).End(xlUp).Row
If Err = 0 Then TX = Join(Application.Transpose(.Cells(2, dStlpec).Resize(IIf(dRiadkov > 2, dRiadkov - 1, 1)).Value), vbNewLine)
On Error GoTo 0
With Shapes(1)
.Visible = True
.TextFrame.Characters.Text = TX
.Left = Klik.Offset(, 1).Left
.Top = Klik.Offset(, 1).Top
End With
End With
End If
Else
Shapes(1).Visible = False
End If
End Sub


@elninoslov
Pokud je to ono, můžete zkusit místo textového pole využít Ověření dat - Zobrazit zprávu při zadávání. Nemusíte pak řešit pozici zprávy. I když nevím, jak to OP myslela s těmi odkazy
"spíš formou odkazu."citovat
#027065
elninoslov
Hnevať sa určite nebudem. Áno, pravda, je tam nepresnosť, musí sa križovať Row a Column, ako píše eLCHa.

Ďalej: Lokalizácie, Lokalizace, Localization - snažím sa na to myslieť pri vzorcoch, no zabudol som na makro. V makrách to je tak, že si systém "dokladá" vlastné (lokalizované) názvy objektov, ale iba dovtedy, pokým objekt nepremenujete. Potom už takto premenovaný je na každej lokalizácii. Takže
pridajte do kódu na koniec túto procedúru
Sub Premenuj()
Dim o As Object
Set o = Selection
o.Name = "tbSeznam"
Set o = Nothing
End Sub

zabezpečte zobrazenie TextBoxu a kliknite do neho, bude označený. Potom kliknite do tejto procedúry, a spustite ju F5. Váš objekt sa premenuje na "tbSeznam". Týmto menom nahradte v kóde to pôvodné na 4 miestach. Procedúru "Premenuj" z kódu vymažte. Teraz by malo všetko fungovať na akejkoľvek lokalizácii.
Očislované Shapes by som nepoužíval, radšej pomenované.citovat
#027066
elninoslov
Ešte malá poznámka: navrhovaná úprava od eLCHa ale zobrazí textbox aj pri kliknutí na iné bunky v riadku, a to sa mi príliš nepáči, tak radšej by som (keby to bolo pre mňa a podľa mňa) upravil začiatok procedúry takto.
Ale tiež by ma zaujímalo, ako je to myslené s tými odkazmi. Ak to má byť tak, že tie texty majú byť nejaké HyperTextové odkazy na napr. listy, tak potom bude treba použiť iný typ objektu, asi ListBox...
Příloha: rar27066_txt-pole.rar (18kB, staženo 24x)
citovat
icon #027067
eLCHa
Očislované Shapes by som nepoužíval, radšej pomenované.

Samozřejmě. Já jenom navrhl způsob, jak by si to mohla otestovat, zda jdete správnou cestou a neztrácíte jen čas... ;)citovat

Strana:  1 2   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje