< návrat zpět

MS Excel


Téma: OptionButton-Prepínač rss

Zaslal/a 5.10.2010 16:46

Zdravím.
Mám na list1 3 OptionButton s manuálne zmeneným textom na T1, T2, T3. Pomocou prepínačov vyberám (označujem) hodnotu jednej z troch buniek. T1 vyberie D5, T2 - D6, T3 - D7.
Pomocou makra by som chcel zaškrtnúť prepínač len vtedy, ak obsah zodpovedajúcej bunky je > 0. Bunky D5, D6 a D7 môžu obsahovať len kladné čísla. V opačnom prípade prepínač nepovoliť zaškrtnúť.
Je to vôbec možné? Ak áno, je makro iné pre prepínač z formuláru ako z ActiveX
Ďakujem

Zaslat odpověď >

Strana:  1 2   další »
#002642
Jeza.m
řekněme že přepínač pojmenuji OB1, v klasickém VB bych napsal když nějaká podmínka je splněna tak
OB1.enabled = true jinak false
ale když to zkusím ve VBA tak to nejde:
ActiveSheet.Shapes("OB1").Enabled = False
nějak nemám na to zkoumat proč a tak bych to obešel pomocí zobrazení / skrytí:
ActiveSheet.Shapes("OB1").Visible = False
Takto to bude fungovat jak pro formulářový prvek tak i ActiveX s tím rozdílem že ten první je složitější pojmenovat jelikož nenabízí vlastnosti, což řeším přiřazením makra s kódem:
ActiveSheet.Shapes(Application.Caller).Name = "OB1"
Třeba to trochu pomůže ;-)
M@citovat
#002643
avatar
Skúsil som
Sub Skry()
If Range("Q14") > 0 Then
ActiveSheet.Shapes("OptionButton55").Visible = True
Else
ActiveSheet.Shapes("OptionButton55").Visible = False
End If
End Sub
zahlásilo chybu- Run time Error 5
Ak som do makra vložil
ActiveSheet.Shapes(Application.Caller).Name = "OptionButton55"
zahlásilo chybu- Run time Error 13
Kde robím chybu?
Ďakujemcitovat
#002644
Jeza.m
máš to makro (to co pojmenovává) přiřazeno ke kliku na ten option button?

Když je pojmenovaný a zkusil jsem si u sebe:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("Q14") > 0 Then
ActiveSheet.Shapes("OptionButton55").Visible = True
Else
ActiveSheet.Shapes("OptionButton55").Visible = False
End If
End Sub

tak to šlape.

Zkus přílohu

M@
Příloha: zip2644_option.zip (9kB, staženo 18x)
citovat
#002654
avatar
Tvoj príklad chodí, ale v mojej aplikácii mám problémy, ktoré spočívajú asi vtom, že to makro nedokážem priradiť danému option buttonu. Maturujem nad tým, ale s veľkou guľou. Poradíš ako na to?
Díkcitovat
#002656
Jeza.m
Pokud jde o to přiřadit to pojmenovávací makro pro OptionButton (ze sady Formuláře) tak stačí na něj kliknout pravým tlačítkem a v popup menu zvolit "Přiřadit makro", pak buď vybereš ze seznamu maker to pojmenovávací, anebo dáš vytvořit nové a pak mu tam vložíš ten pojmenovávací kód:
ActiveSheet.Shapes(Application.Caller).Name = "OB1"

M@citovat
#002659
avatar
Ďakujem,
s jedným prepínačom to funguje. Pridal som ďalšie dva prepínače. Priradil som im makro s novými menami. V makre pre zviditeľnovanie prepínačov som zaviedol pre každý prepínač podmienku cez iné bunky. Nefunguje.
Uvádzam pre dva prepínače.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D5") > 0 Then
ActiveSheet.Shapes("OB1").Visible = True
Else
ActiveSheet.Shapes("OB1").Visible = False
End If
If Range("D7") > 0 Then
ActiveSheet.Shapes("OB2").Visible = True
Else
ActiveSheet.Shapes("OB2").Visible = False
End If
End Sub

Public Sub pojmenuj()
ActiveSheet.Shapes(Application.Caller).Name = "OB1"
End Sub
Public Sub pojmenuj2()
ActiveSheet.Shapes(Application.Caller).Name = "OB2"
End Sub
Kde robím chybu? Ďakujemcitovat
#002661
Jeza.m
Zkus přiložit přílohu, mrknu se, takhle to vypadá dobře, tak to bude v něčem jiném.

M@citovat
#002663
avatar
Na tom istom liste mám ešte samostatne makro:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$M$3" Then
Call HIDE
End If
End Sub
ktoré keď vymažem, tak to chodí. Potrebujem však mať obidve.citovat
#002664
Jeza.m
Takže kód vypadá nějak takto:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D5") > 0 Then
ActiveSheet.Shapes("OB1").Visible = True
Else
ActiveSheet.Shapes("OB1").Visible = False
End If

If Range("D7") > 0 Then
ActiveSheet.Shapes("OB2").Visible = True
Else
ActiveSheet.Shapes("OB2").Visible = False
End If

If Target.Address = "$M$3" Then
Call HIDE
End If
End Sub

Nevím co dělá ten HIDE (asi něco schovává :-) ), ale může záležet i na tom kde v kódu je umístěn (podle toho co dělá).

M@citovat
#002665
avatar
Čuduj sa svete, to isté som urobil aj ja a mne to nechodilo. Teraz som natvrdo skopíroval Tvoje makro a klape to. Zrejme som u seba ešte niečo mal naviac. Včera som s tým zabil takmer celý deň. Srdečná vďaka.
Ešte k tomuto jeden dotaz. Ak mám takýchto prepínačov viac (15), nešlo by zviditeľňovanie urobiť v cykle? Inak je to veľa písania a je to dosť neprehľadné. Díkcitovat

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