určitě jde, ale hodil by se příklad ať si nemusíme vymýšlet nějakou tabulku pro názorný příklad.
M@
Přes selection by to mělo fungovat i v tomto případě:
For Each cell In Selection
If cell.Value <> "" Then MsgBox cell.Value
Next
v msgbox ti to zobrazí postupně hodnoty všech neprázdných buněk ve vybrané oblasti ať je jakákoliv.
M@
No dobře, tak třeba takhle:
For i = 5 To 20
If Range("D"& i) > 0 Then
ActiveSheet.Shapes("OB" & i-4).Visible = True
Else
ActiveSheet.Shapes("OB" & i-4).Visible = False
End If
Next
napsal jsem si to jen tak bez odzkoušení, ale myslím, že by to jít mělo ;-).
M@
Zobrazit jako odkaz bych žekl že ne, ale spustit odkaz dle adresy určitě jo.
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@
Zkus přiložit přílohu, mrknu se, takhle to vypadá dobře, tak to bude v něčem jiném.
M@
Funkce "průměr když" není, takže to musíš obejít, třeba vzorcem jak jsem psal si tam v případě chybové hodnoty dosaď třeba písmeno "A" a tu další podmínku stav na písmeno "A" a ne na chybovou hodnotu. Když nebudeš v buňkách mít chybu ale třeba to písmeno "A" tak ti součty či průměry na daný sloupec fungovat budou, ale s chybou ne.
=KDYŽ(JE.CHYBHODN(SVYHLEDAT(něco, někde, sloupec, nepravda));"A";SVYHLEDAT(něco, někde, sloupec, nepravda))
M@
Co takhle zamezit výsledku #N/A ? ;-)
tvůj vzorec asi vypadá takto
=SVYHLEDAT(něco, někde, sloupec, nepravda)
co takhle zkusit z něj udělat:
=KDYŽ(JE.CHYBHODN(SVYHLEDAT(něco, někde, sloupec, nepravda));"";SVYHLEDAT(něco, někde, sloupec, nepravda))
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@
třeba takto?
V tvé příloze jsem nic neviděl :-/, tak posílám update té mé :-).
M@
asi to s tím listboxem moc nechápu, ale chtěl jsi příklad tak tady je :-).
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@
ř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@
Pokud te vzorec spočítáš makrem tak proč ne, ale bude-li to rychlejší to ti nepovím (možná) :-), zkus to ;-).
M@
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.