Avatar billede bodid Nybegynder
24. marts 2004 - 14:16 Der er 3 kommentarer

Makrogenereret grafer i Excel

Hej

Jeg har forsøgt mig med at lave et lagkagediagram udfra nogle givne værdier i et excel ark. For min egen nemheds skyld har jeg optaget makroen. Men det range, hvori værdierne findes er fast og det skal det ikke være, idet antallet kan variere. Den første værdi er altid i cellerne A6 og F6, men hvor mange rækker der er, kan variere. Kan jeg på nogle måder danne et automatisk range, efter antallet af rækker.

Jeg vedhæfter lige en kopi af makroen. Undskyld længden…….

Sub Graftotal()
 
  Range("A6:a7,F6:F7").Select
    Range("F6").Activate
    Charts.Add
    ActiveChart.ChartType = xl3DPie
    ActiveChart.SetSourceData Source:=Sheets("sheet1").Range( _
        "A6:A7,F6:F7"), PlotBy:=xlColumns
    ActiveChart.SeriesCollection(1).Name = "=oversigt!R3C5"
    ActiveChart.Location Where:=xlLocationAsObject, Name:="oversigt"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Oversigt"
    End With
    ActiveSheet.Shapes("Chart 1").IncrementLeft -181.5
    ActiveSheet.Shapes("Chart 1").IncrementTop 47.25
    ActiveSheet.Shapes("Chart 1").ScaleWidth 0.85, msoFalse, msoScaleFromTopLeft
    ActiveSheet.Shapes("Chart 1").ScaleHeight 0.96, msoFalse, msoScaleFromTopLeft
    With Selection.Border
        .Weight = 2
        .LineStyle = 0
    End With
    Selection.Interior.ColorIndex = xlNone
    Sheets("sheet1").DrawingObjects("Chart 1").RoundedCorners = False
    Sheets("sheet1").DrawingObjects("Chart 1").Shadow = False
    Selection.AutoScaleFont = True
    With Selection.Font
        .Name = "arial"
        .FontStyle = "Regular"
        .Size = 8.5
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .Background = xlAutomatic
    End With
    ActiveChart.PlotArea.Select
    With Selection.Border
        .Weight = xlHairline
        .LineStyle = xlNone
    End With
    With Selection.Interior
        .ColorIndex = 16
        .PatternColorIndex = 1
        .Pattern = xlSolid
    End With
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).Points(2).Select
    ActiveChart.SeriesCollection(1).Points(1).Select
    With Selection.Border
        .Weight = xlThin
        .LineStyle = xlAutomatic
    End With
    With Selection.Interior
        .ColorIndex = 7
        .Pattern = xlSolid
    End With
    ActiveChart.SeriesCollection(1).Points(2).Select
    With Selection.Border
        .Weight = xlThin
        .LineStyle = xlAutomatic
    End With
    With Selection.Interior
        .ColorIndex = 44
        .Pattern = xlSolid
    End With
End Sub
Avatar billede overchord Nybegynder
24. marts 2004 - 14:38 #1
Ja - du skal have aendret den flg linje:
ActiveChart.SetSourceData Source:=Sheets("sheet1").Range( "A6:A7,F6:F7"),PlotBy:=xlColumns...

hvor range-objektet skal aendres lidt. Det kan goeres paa flere maader - men lad os sige at du bliver bedt om at fortaelle makroen hvor mange raekker med data du har.
Indsaet denne linje i toppen af din makro:

AntalRk = Inputbox("Hvor mange raekker med data?")

Herefter aendrer du linjen til:

ActiveChart.SetSourceData Source:=Sheets("sheet1").Range( "A6:A" & AntalRk & ",F6:F" & AntalRk),PlotBy:=xlColumns....
Avatar billede kabbak Professor
24. marts 2004 - 14:55 #2
Hvis det altid er sidste værdi i A kolonnen der skal med, såSkal det øverste se sådan ud.

Sub Graftotal()
  RK = Range("A65536").End(xlUp).Row
  Range("A6:a" & RK & ",F6:F" & RK).Select
    Range("F6").Activate
    Charts.Add
    ActiveChart.ChartType = xl3DPie
    ActiveChart.SetSourceData Source:=Sheets("sheet1").Range( _
        "A6:a" & RK & ",F6:F" & RK), PlotBy:=xlColumns
Avatar billede kabbak Professor
25. januar 2006 - 21:59 #3
hvordan går det ??
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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