konto usunięte

Temat: Wykresy przestawne_kolorystyka

Czy jest możliwe ustawienie na stałe kolorystyki w wykresie przestawnym dla konkretnych danych? Za każdym razem, kiedy choćby nieznacznie zmieniam wybór, kolorystyka wraca do niezbyt ciekawych ustawień automatycznych.

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Ja z tym radzę sobie makrem automatycznie wyzwalanym przy przeliczeniu wykresu. Jeśli jest inny sposób, to chętnie się dowiem :)

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Mogę prosić o więcej szczegółów odnośnie tego makra albo po prostu przykład?

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Anna Bandurowska:

Jutro wkleję, bo dziś już mi się nie chce wyciągać pracowego kompa. No, chyba, że bardzo bardzo potrzebujesz na już... ;)

Kurcze, dopiero zauważyłem, że to Accessowa grupa, a nie Excelowa ;) Moje rozwiązanie było Excelowe. Ale może da się "przeportować" - postaram się w weekend sprawdzić.Radosław Dominiak edytował(a) ten post dnia 05.02.10 o godzinie 20:51

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Fajnie, dziękuję.

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Anna Bandurowska:
Fajnie, dziękuję.

OK, niżej kawałek kodu.

Jak widać na początku lecimy pętelką po wszystkich seriach i kolorujemy wszystkie serie danych na ten sam zielony kolor, a wszystkie obrysy na czerwono. To tak, żebyś zobaczyła jak hurtem pokolorować wszystko.
Więc jak Ci pętelka nie potrzena, to ją wywal :)

Ty byś pewnie chciała każdą serię danych pokolorować na inny kolor - to jest pod pętelką. Założyłem, że serie danych nazywają się "Seria1" i "Seria2", ale pewnie u Ciebie jest inaczej, to sobie podmień.

Poza tym, żeby to działało, trzeba zrobić jeszcze taki krok (zacytuję ze strony MS):

To add a reference to Owc11.dll or Owc10.dll to an Access database

Open the database to which you want to add the reference.
Click Code on the toolbar to open the Microsoft Visual Basic® Editor.
On the Tools menu, click References.
Click Browse and navigate to the location of the Owc11.dll or Owc10.dll file.
For Access 2003, its default location is C:/Program Files/Common Files/Microsoft Shared/Web Components/11 — for Access 2002, C:/Program Files/Common Files/Microsoft Shared/Web Components/10.

Select the file, click Open, and click OK.


Private Sub Form_DataSetChange()

On Error Resume Next
' odglos jest, zeby bylo wiadomo kiedy makro sie wlacza
' przydaje sie do testowania, ale potem mozna wywalic
Beep


Dim sp As OWC10.ChartSpace
Dim ch As OWC10.ChChart
Dim se As OWC10.ChSeries

Set sp = Me.ChartSpace
Set ch = sp.Charts(0)

'tlo okna ustawiam biale
ch.Interior.Color = RGB(255, 255, 255)


'w tej petli zmieniam wszystko za jednym zamachem
For Each se In ch.SeriesCollection
With se
'.Border.Weight = owcLineWeightThin
.Interior.Color = RGB(0, 255, 0)
.Border.Color = RGB(255, 0, 0)
'.Border.dashstyle = chLineSolid
End With
Next se


'tutaj zmieniam kolory linii dla kazdej serii osobno
ch.SeriesCollection("Seria1").Interior.Color = RGB(100, 0, 0)
ch.SeriesCollection("Seria2").Interior.Color = RGB(50, 0, 0)

End Sub



A, i najważniejsze - gdzie to wpisać ;) Gdy jesteś w formularzu z wykresem, wciskasz Alt+F11, wyszukujesz w menu po lewej ten formularz (chyba powininien być domyślnie aktywny skoro w nim jesteś) i tam to wklejasz.

Jakby co śmiało pytaj!

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Dziękuję bardzo. Przetestuję i dam znać, jak poszło.

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Anna Bandurowska:
Dziękuję bardzo. Przetestuję i dam znać, jak poszło.

I jak poszło? A przy okazji - czy coś Cię trzyma przy wykresach w MS Access? Wydaje mi się, że naturalniejsze jest podejście "Access do przetwarzania danych, Excel do prezentowania wyników".

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Jak na razie wysypuje mi się kod na Set sp = Me.ChartSpace. Nie wiem, dlaczego. Początek zostawiłam tak:

Private Sub Form_DataSetChange()

Dim sp As OWC11.ChartSpace
Dim ch As OWC11.ChChart
Dim se As OWC11.ChSeries

Set sp = Me.ChartSpace
Set ch = sp.Charts(0)

Kod podpięłam pod podformularz/wykres.

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Jaki błąd wyskakuje?

Wykres masz w podformularzu, a nie formularzu?

Zgaduję też, że masz nowszego Office'a niż ja...

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Run time error '13':
Type mismatch

Mam Office 2003. Wykres mam w podformularzu, ale jak otwieram bezpośrednio sam formularz z wykresem, to pojawia się ten sam błąd.

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Anna Bandurowska:
Run time error '13':
Type mismatch

To dziwne... Wątpię, żeby OWC11 było aż tak inne od OWC10. Sorry za pytanie, ale nie zapomniałaś wyklikać OWC w "Refereneces"?

A pozbycie się tej linijki pomaga? Czyli zastąpienie tego kawałka na:

Dim sp As OWC11.ChartSpace
Dim ch As OWC11.ChChart
Dim se As OWC11.ChSeries

'Set sp = Me.ChartSpace <-- to zakomentujmy
Set ch = Me.ChartSpace.Charts(0)

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Pierwszy sukces:) Początek kodu zadziałał, czyli udało się ustawić tło. Zmieniłam w "references" z OWC11 na OWC10 i podobnie w kodzie. Mam zainstalowany na komputerze dodatkowo Access 2007, którego jeszcze nie używam, i to chyba stąd ten błąd. Zabieram się za testowanie drugiej części.

konto usunięte

Temat: Wykresy przestawne_kolorystyka

To super :) Mam nadzieję, że teraz będzie już z górki ;)

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Poszło z górki dla kodu poniżej i przy otwarciu wykres wygląda dokładnie tak, jak chciałam:

Private Sub Form_Open(Cancel As Integer)
Dim sp As OWC10.ChartSpace
Dim ch As OWC10.ChChart
Dim se As OWC10.ChSeries

Set sp = Me.ChartSpace
Set ch = sp.Charts(0)

ch.Interior.Color = RGB(157, 184, 237)
ch.PlotArea.Interior.Color = RGB(232, 232, 249)
ch.Border.Color = RGB(232, 232, 249)
ch.PlotArea.Border.Color = RGB(232, 232, 249)

ch.SeriesCollection("MJ").Interior.Color = RGB(172, 50, 70)
ch.SeriesCollection("MJ").Border.Color = RGB(172, 50, 70)
ch.SeriesCollection("R").Interior.Color = RGB(121, 221, 235)
ch.SeriesCollection("R").Border.Color = RGB(121, 221, 235)
ch.SeriesCollection("GL").Interior.Color = RGB(250, 150, 4)
ch.SeriesCollection("GL").Border.Color = RGB(250, 150, 4)
ch.SeriesCollection("FA").Interior.Color = RGB(101, 23, 107)
ch.SeriesCollection("FA").Border.Color = RGB(101, 23, 107)
ch.SeriesCollection("SP").Interior.Color = RGB(21, 205, 39)
ch.SeriesCollection("SP").Border.Color = RGB(21, 205, 39)

End Sub

Problemy pojawiają się znów przy próbie uruchomienia tego kodu dla "Data set change". Wyskakuje błąd Run time error '1004' Invalid parameter. Podświetla się, tak jak poprzednio "Set ch = sp.Charts(0)" i pojawia się opis sp.Charts(0)=<Invalid parameter>. Co mogę z tym zrobić?

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Anna Bandurowska:
Problemy pojawiają się znów przy próbie uruchomienia tego kodu dla "Data set change". Wyskakuje błąd Run time error '1004' Invalid parameter. Podświetla się, tak jak poprzednio "Set ch = sp.Charts(0)" i pojawia się opis sp.Charts(0)=<Invalid
> parameter>. Co mogę z tym zrobić?

Nie mam niestety pracowego kompa z Accessem, ale zgaduję, że wystarczy, że dodasz na początku

On Error Resume Next


Chodzi o to, że gdy za pierwszym wystąpi zdarzenie "DataSetChange" makro się wysypuje, bo wykres jeszcze nie jest narysowany, więc nie ma tych wszystkich obiektów, które chcesz sformatować. Pewnie można dodać jakiś warunek sprawdzający, czy wykres istnieje, ale można też dodać tą właśnie linijkę, która sprawi, że błędy będą "olewane", a makro będzie działać dalej. Oczywiście to nie zawsze jest dobre rozwiązanie, bo jak coś się popsuje, to się o tym nawet nie dowiesz. Ale z drugiej strony ten kod tylko koloruje wykres - jak wystąpi błąd to żadnych danych i tak nie stracisz.

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Wreszcie wszystko śmiga:) Dzięki bardzo za pomoc. Sporo się nauczyłam. Pozdrawiam

konto usunięte

Temat: Wykresy przestawne_kolorystyka

Anna Bandurowska:
Wreszcie wszystko śmiga:) Dzięki bardzo za pomoc. Sporo się nauczyłam. Pozdrawiam

Nie ma sprawy :) Ja też się sporo nauczyłem, bo jak wspomniałem - wcześniej robiłem to tylko w Excelu :)

Piwo postawisz przy okazji ;)
Andrzej W.

Andrzej W. Informatyk

Temat: Wykresy przestawne_kolorystyka

Witam,

czy ten kod działa dla wykresu kolumnowego?. Wrzuciłem to do mojego formularza w którym siedzi mój wykres i wywala błąd przy : Set sp = Me.ChartSpace.

Wie ktoś może dlaczego.
Pozdrawiam

konto usunięte

Temat: Wykresy przestawne_kolorystyka

A czy przypadkiem nie masz wykresu osadzonego w innym formularzu? Wydaje mi się, że to działa (bez modyfikacji) tylko jeśli wykres nie jest osadzony jako podformularz innego formularza.

Zresztą łatwo się domyślić, że Me.ChartSpace zadziała tylko jeśli raport w którym jesteśmy ma obiekt ChartSpace, a nie jeśli ma obiekt, który ma obiekt ChartSpace. Wtedy pewnie pomoże coś w stylu Me.JakiśObiekt.ChartSpace.

Podobne tematy


Następna dyskusja:

Wykresy na formularzu?




Wyślij zaproszenie do