< návrat zpět
MS Excel
Téma: "podmíněné nakresl...
Zaslal/a slavekskeeve 8.11.2009 21:35
Ahoj, potřeboval bych, aby: Když změním hodnotu buňky A1 z třeba z ANO na NE, tak aby se mi nakreslil Obrys1(z automatických tvarů, nebo může být i někde v sešitu už stranou připravenej). To bych ještě zvlád, ale.. Pokud změnim třeba z ANO na NE, a rozmyslím se a pak vyberu NEVÍM, tak bych potřeboval, aby se Obrys1 smazal a "namaloval" se místo toho třeba Obrys2. Podle toho kolikrát měním ANOxNExNEVÍM, tak tam pak mám moc obrysů v makru mi to píše, že nelze obrys vybrat.. (když ho chci označit aby se vymazal) ale s makry moc neumím, prakticky vůbec.. Je něco takovýho možný? U textu bych užil podmíněné formátování, jinou barvu textu, aby se to barvilo, kdy já potřebuju.. jdu radši spát :)
Jeza.m(9.11.2009 17:41)#000833 Ahoj,
za předpokladu že na stránce bude jen 1 "shape", tak by šlo použít:
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(1, 1) = "ANO" Then ActiveSheet.Shapes(1).AutoShapeType = msoShapeRoundedRectangle
If Cells(1, 1) = "NE" Then ActiveSheet.Shapes(1).AutoShapeType = msoShapeDiamond
If Cells(1, 1) = "NEVÍM" Then ActiveSheet.Shapes(1).AutoShapeType = msoShapeFoldedCorner
End Sub
což se dá rozšířit nejen na změnu tvaru (autoshapetype), ale i na zobrazit / skrýt (visible = true / false)
Dále lze objekty pojmenovat:
ActiveSheet.Shapes(1).Name = "tvar"
a do budoucna místo indexu (1) se v kódu lze odkazovat na ("tvar"). Což lze využít například pojmenováním "R1C1" tak vím že třeba při změně buňky s řádkem 1 a sloupcem 1 se mi má změnit shape "R1C1".
Osobně jsem něco takového ještě nikdy nepoužil :-)
M@
citovat
To Jeza.M
No jo jenže to nefunguje, to je právě to, co mi to dělalo předtím
RunTime error 70 permission denied..
citovat