< návrat zpět

MS Excel


Téma: Selected Chart.SeriesCollection rss

Zaslal/a 12.3.2014 16:40

Je mozne nejak v grafe prefarbit Point len pre tie ktore som oznacil???

tu je makro pre vsetky point v selecnutom grafe:
For Each aCollection In activeShape.Chart.SeriesCollection
For Each aPoint In aCollection.Points
aPoint.Format.Fill.ForeColor.RGB = RGB(100, 100, 100)
Next
Next


ale ani jedna vlasnost z pointu nehovori o tom ci je selecnuty alebo nie

Zaslat odpověď >

Strana:  1 2   další »
#018258
avatar
Možná by stačilo chytit výběr. Mrkni na

Chart_Select

případně na kombinaci:

sub Chart_MouseUp(...)
....
ActiveChart.GetChartElement ...
citovat
#018271
avatar
lubo: uz som to zacal robit cez MouseUp

ale mam problem useba zadefinovat:
Dim myClassModule As New eventClassModule

nasledne nato pustit:
Set myClassModule.myChartClass = myChart

tu je kod pre (Class module) myClassModule:
Public WithEvents myChartClass As Chart

Private Sub myChartClass_MouseUp(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
MsgBox (Arg1 & Chr(10) & Arg2)
End Sub


nevies nahodov preco to nefunguje?? netreba na eventClassModule nejaku referenciu?citovat
#018288
avatar
Pokud je graf někde na listu, předpokládám že "myChart" je jméno grafu. Pokud je to už objekt, není problém to opravit:


Option Explicit
Dim myClassModule As New eventClassModule

Private Sub Worksheet_Activate()
Set myClassModule.myChartClass = ActiveSheet.ChartObjects("myChart").Chart
End Sub

Private Sub Worksheet_Deactivate()
Set myClassModule = Nothing
End Sub


V kódu třídy jsi nejspíš vložit Chart_Select a pak jsi to přepsal na MouseUp:

Public WithEvents myChartClass As Chart

Private Sub Class_Terminate()
Set myChartClass = Nothing
End Sub

Private Sub myChartClass_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long
myChartClass.GetChartElement x, y, ElementID, Arg1, Arg2
MsgBox (Arg1 & Chr(10) & Arg2)
End Sub
citovat
#018291
avatar
ono to je vsetko poriadku a ano mal si pravdu prepisal som select na mouseup neriesil som to ale riesim problem preco neprejde:

myClassModule As New eventClassModule
Compile error: User-defined type not defined

ako keby som nemal referenciu nato ... resp. aj ked som hladal na nete tak eventClassModule nema mat referenciucitovat
#018294
avatar
Sice to je nepravděpodobné, ale pro jistotu.
Má ClassModule jméno eventClassModule?citovat
#018295
avatar
nie nema

meno ma: myClassModulecitovat
#018297
avatar
Toto nechapu chci vyfarbit zaznacene stlpce v charte (powerpoint) tak to nejde ani zaboha

ale ked to spravim v exceli tak to ide uplne klasicky jednoducho s prikazom:
Selection.Format.Fill.ForeColor.RGB = RGB(200, 200, 200)

v powerpointe by to malo vypadat asi takto:
ActiveWindow.Selection.ShapeRange.Chart.Format.Fill.BackColor.RGB = RGB(200, 200, 200)

aleeee powerpoint nevede ziadne udaje o charte ... fakt sila ... kde ich potom ma??citovat
#018298
avatar
Tak oprav:

Dim myClassModule As New eventClassModule

na

Dim myClassModule As New myClassModule

Ta proměnná má jméno třeídy, která je stejná jako jméno module, ve kterém je definována.

To vybarvování může vypadat (pro čárový graf a vybarvení bodů):

Private Sub myChartClass_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long
myChartClass.GetChartElement x, y, ElementID, Arg1, Arg2

If ElementID = xlSeries Then
With myChartClass.SeriesCollection(Arg1)
.MarkerStyle = xlMarkerStyleNone ' smaže předchozí změny.
With .Points(Arg2)
.MarkerStyle = xlMarkerStyleCircle
.MarkerSize = 10
.Format.Fill.ForeColor.RGB = RGB(255, 100, 100)
End With
End With
End If
' MsgBox (Arg1 & Chr(10) & Arg2)

End Sub
citovat
#018303
avatar
ja uz neviem kde robim chybu prikladam prilohu

asi som aj s tym mal zacat ked kazdeho na fore tu upozornujem ze bez prilohy to nejde :)

Lubo kuknes sa nato prosimta kde robim chybu??
Příloha: zip18303_test.zip (47kB, staženo 23x)
citovat
#018311
avatar
Tak každý jsme se bavili o jiném. Mě nedošlo, že se to týká powerpointu 1

Tam to je jiné. Události objektů se tam nějak nepropadají (nebo přesněji, nevím o tom). Kdysi jsem ale něco podobného zkoušel. Přes win api jsem odečítal pozici kurzoru a pak hledal objekt na listu.

Dám vědět, pokud na něco nepřijdeš sám.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