Avatar billede lineriber Praktikant
02. januar 2014 - 13:52 Der er 3 kommentarer og
1 løsning

VBA: hvis dataserie eksisterer i pivotgraf

Hej Eksperter

Jeg har forgæves forsøgt at afsøge www for en løsning på dette, men uden held.

Jeg kører excel 2010 engelsk version.

Jeg har en simpelt VBA kode som i en pivotgraf formaterer en dataserie der hedder "Forecast", så den altid har den samme farve:

ActiveChart.SeriesCollection("Forecast").Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorAccent3
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = -0.25
        .Transparency = 0
        .Solid
    End With

Men da jeg har nogle situationer hvor jeg filtrerer min pivotgraf så der ikke findes en dataserie der hedder "Forecast", så får jeg en fejl når jeg afspiller koden - selfølgelig fordi at den ikke kan "ActiveChart.SeriesCollection("Forecast").Select
".

Hvordan tilføjer jeg i koden, at ovenstående kun skal ske hvis "ActiveChart.SeriesCollection("Forecast")" eksisterer i grafen?

mvh
Line
02. januar 2014 - 13:59 #1
Den hurtige løsning kunne være

On error resume next
ActiveChart.SeriesCollection("Forecast").Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorAccent3
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = -0.25
        .Transparency = 0
        .Solid
    End With
On error goto 0
Avatar billede lineriber Praktikant
02. januar 2014 - 14:12 #2
Hej Thor

Tak for det.

Hvad betyder "On error goto O" ?
Vil man kunne bruge din kode flere gange i en sub?
Hvis man nu fx også har en serie der hedder "Budget" og en der hedder "Commitment", som man ønsker at formaterer (forskelligt), i samme sub som den du lige har lavet til "Forecast".
02. januar 2014 - 14:18 #3
On error goto 0 nulstiller on error resume next, så din kode efterfølgende vil fejle "rigtigt", hvis noget skulle gå galt.

Og ja, du kan godt bruge On error resume next andre steder. Du skal bare altid huske at nulstille efter at have brugt resume next

OG du skal bruge on error resume next med varsomhed. Den springer "bare"linjer, der fejler over - det er sjældent, at man ønsker det helt generelt og slet ikke når man arbejder med koden, da man så ikke opdager, at der er gået noget galt.
Avatar billede lineriber Praktikant
02. januar 2014 - 14:37 #4
Tak, er forstået :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester