14. april 2004 - 11:58Der er
4 kommentarer og 1 løsning
Makro - produktion af grafer
Jeg har et skript som ser ud som følger:
ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.Name = Sheets("Grafdata1").Cells(r_fnr, c2002) 'fanebladet navngives med idnummer.
Det den gør er at den opretter et nyt ark, indeholdende en graf med navnet som står i celle (r_fnr, c2002)....
Det jeg nu ønsker er at oprette en ny graf i det pågældende ark, det vil sige en side 2... den giver selvfølgelig en fejl lige nu, da arket jo allerede eksisterer.....Er der nogen der kan hjælpe med dette ????????
Public Sub test() Dim Findes As Boolean Findes = False For Each Ws In Worksheets' tjekker om arket er oprettet If Worksheets(Ws.Name) = Sheets("Grafdata1").Cells(r_fnr, c2002) Then Findes = True Exit For End If Next If Findes = True Then ActiveChart.Name = Sheets("Grafdata1").Cells(r_fnr, c2002) ' arket eksisterer, så du skal nok vælge en anden adresse til at sætte den ind på Else ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.Name = Sheets("Grafdata1").Cells(r_fnr, c2002) 'fanebladet navngives med idnummer. End If End Sub
Public Sub test() Dim Findes As Boolean Findes = False For Each Ws In Worksheets' tjekker om arket er oprettet If Worksheets(Ws.Name) = Sheets("Grafdata1").Cells(r_fnr, c2002) Then Findes = True Exit For End If Next If Findes = True Then ActiveChart.Location Where:=Sheets(Ws.Name)' arket eksisterer, så du skal nok vælge en anden adresse til at sætte den ind på Else ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.Name = Sheets("Grafdata1").Cells(r_fnr, c2002) 'fanebladet navngives med idnummer. End If End Sub
Det jeg er interesseret i er at indsætte flere grafer på et ark. Jeg har følgende Makro stillet op. Det jeg ønsker er at lave en tilsvarende makro for "graf 2", med den forskel at "graf 2" oprettes i samme ark som "graf 1" i alle de loopede ark.
Dim i, c2002, c2001, r_fnr, r_beg, r_end As Long
i = 4 'hjælpevariabel c2002 = 4 'data for dette år i kolonne X ved første forretning c2001 = 5 'data for sidste år i kolonne X ved første forretning r_fnr = 3 'linien hvor forretningsnr. står r_beg = 4 'data begynder i denne række for alle forretninger r_end = 8 'data slutter i denne række for alle forretninger
Do Until IsEmpty(Cells(r_beg, i)) Charts.Add ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="test" 'benytter brugertilpasset graf ActiveChart.SetSourceData Source:=Sheets("Grafdata1").Range(Sheets("Grafdata1").Cells(r_beg, c2002), Sheets("Grafdata1").Cells(r_end, c2001)), PlotBy:=xlColumns ActiveChart.SeriesCollection(1).XValues = "=Grafdata1!R6C2:R18C2" ActiveChart.SeriesCollection(2).XValues = "=Grafdata1!R6C2:R18C2" ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.Name = Sheets("Grafdata1").Cells(r_fnr, c2002) 'fanebladet navngives med forretningsnr. With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "tester2" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "tester3" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "tester4" + ActiveChart.Name 'forretningsnr. sættes på x-aksens titel End With Sheets("Grafdata1").Select
'de forskellige variable tælles op, så de står ved næste forretning i = i + 2 c2002 = c2002 + 2 c2001 = c2001 + 2 Loop End Sub
Det jeg er interesseret i er at indsætte flere grafer på et ark. Jeg har følgende Makro stillet op. Det jeg ønsker er at lave en tilsvarende makro for "graf 2", med den forskel at "graf 2" oprettes i samme ark som "graf 1" i alle de loopede ark.
Dim i, c2002, c2001, r_fnr, r_beg, r_end As Long
i = 4 'hjælpevariabel c2002 = 4 'data for dette år i kolonne X ved første forretning c2001 = 5 'data for sidste år i kolonne X ved første forretning r_fnr = 3 'linien hvor forretningsnr. står r_beg = 4 'data begynder i denne række for alle forretninger r_end = 8 'data slutter i denne række for alle forretninger
Do Until IsEmpty(Cells(r_beg, i)) Charts.Add ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="test" 'benytter brugertilpasset graf ActiveChart.SetSourceData Source:=Sheets("Grafdata1").Range(Sheets("Grafdata1").Cells(r_beg, c2002), Sheets("Grafdata1").Cells(r_end, c2001)), PlotBy:=xlColumns ActiveChart.SeriesCollection(1).XValues = "=Grafdata1!R6C2:R18C2" ActiveChart.SeriesCollection(2).XValues = "=Grafdata1!R6C2:R18C2" ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.Name = Sheets("Grafdata1").Cells(r_fnr, c2002) 'fanebladet navngives med forretningsnr. With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = "tester2" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "tester3" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "tester4" + ActiveChart.Name 'forretningsnr. sættes på x-aksens titel End With Sheets("Grafdata1").Select
'de forskellige variable tælles op, så de står ved næste forretning i = i + 2 c2002 = c2002 + 2 c2001 = c2001 + 2 Loop End Sub
Jeg har lukket spørgsmålet..... Prøver at finde en anden løsning
Synes godt om
Ny brugerNybegynder
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.