Spreminjanje barv grafa v VBA

Pomoč pri izdelavi makrov
Odgovori
hosta90
Prispevkov: 12
Pridružen: So Jul 24, 2010 5:19 pm

Spreminjanje barv grafa v VBA

Odgovor Napisal/-a hosta90 »

Sub Makro3()

For i = 1 To 71

ThisWorkbook.Charts(i).SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(255, 0, 255)
ThisWorkbook.Charts(i).SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(255, 0, 255)
ThisWorkbook.Charts(i).SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(255, 0, 255)
ThisWorkbook.Charts(i).SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(255, 0, 255)

Next

End Sub

Pozdravljeni,
koda deluje. vendar pri zadnjih desetih grafih mi ne spremeni barve in naprimer eno serijo pri nekaterih grafih izpusti. morda, da je razlog v tem, da so bili ti zadnji grafi dodani v excel2007, vsi ostali
pa so že od prej (excel 2003). Ali je možno, da se v excelu 2007 drugače naziva grafe?
Ali je kakšen drug ukaz za izbor serije?


Najlepša hvala

martin
Zadnjič spremenil hosta90, dne Pe Avg 05, 2011 10:58 am, skupaj popravljeno 1 krat.
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Spreminjanje barv grafa v VBA

Odgovor Napisal/-a admin »

Elementi grafov v Excelu 2003 in 2007 so enaki; no Excel 2007 jih pozna nekaj več, a to v vašem primeru ni pomembno.

V vašem, primeru je problem verjetno samo v tem, da grafi v Excelu 2007 niso bili narejeni po enakem vzorcu in njihova lastnost SeriesCollection(1) in SeriesCollection(2) ne kaže na isti nabor podatkov kot v preostalih grafih.
lp,
Matjaž Prtenjak
Administrator
hosta90
Prispevkov: 12
Pridružen: So Jul 24, 2010 5:19 pm

Re: Spreminjanje barv grafa v VBA

Odgovor Napisal/-a hosta90 »

Kako pa bi lahko rešil ta problem?
Ker imam ogromno datotek z grafi...tako, da bi bilo preveč dela grafe drugače narediti.
Ali obstaja kakšna možnost, da bi mi makro spremenil grafe v želene barve?
Kaj bi moral spremeniti oz. dodati?

Najlepša hvala!
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Spreminjanje barv grafa v VBA

Odgovor Napisal/-a admin »

Uf to pa je čisto presplošno vprašanje, da bi vam lahko pomagal...

A glede na vaš opis iz osnovnega vprašanje, kjer pravite, da imate množico starih grafov, nad katerimi makro deluje pravilno vam svetujem sledeče... Namesto novih grafov, nad katerimi makro ne deluje, raje vzamite katerega izmed starih grafom in ga skopirajte. Potem pa skopiranemu grafu spremenite območje podatkov in tako bosta grafa popolnoma enaka, le da dosta kazala na različne podatke! Ker bosta torej grafa tehnično enaka, bo zatorej tudi makro dobro deloval!
lp,
Matjaž Prtenjak
Administrator
hosta90
Prispevkov: 12
Pridružen: So Jul 24, 2010 5:19 pm

Re: Spreminjanje barv grafa v VBA

Odgovor Napisal/-a hosta90 »

Sub av()

Dim graf As Chart
Dim serija As SeriesCollection


For Each graf In ThisWorkbook.Charts

For Each serija In graf

With graf.SeriesCollection.Format

.Line.ForeColor.RGB = RGB(255, 0, 255)
.Fill.ForeColor.RGB = RGB(255, 0, 255)

End With

Next serija

Next graf

End Sub

kako bi moral tole popraviti da bo delovalo?

najlepša hvala

martin
admin
Site Admin
Prispevkov: 3691
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Spreminjanje barv grafa v VBA

Odgovor Napisal/-a admin »

Glede na kodo, ki ste jo poslali ob vprašanju in kodo, ki ste jo poslali sedaj imate narobe postavljene for zanke; torej:

Koda: Izberi vse

  Dim graf As Chart
  Dim serija As Series

  For Each graf In ThisWorkbook.Charts
    For Each serija In graf.SeriesCollection
      With serija.Format
        .Line.ForeColor.RGB = RGB(255, 0, 255)
        .Fill.ForeColor.RGB = RGB(255, 0, 255)
      End With
    Next serija
  Next graf
lp,
Matjaž Prtenjak
Administrator
Odgovori