Avatar billede simon_iknow Nybegynder
14. april 2004 - 11:58 Der 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 ????????
Avatar billede kabbak Professor
14. april 2004 - 12:19 #1
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
Avatar billede kabbak Professor
14. april 2004 - 12:27 #2
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

nå, det skal nok være sådan
Avatar billede simon_iknow Nybegynder
14. april 2004 - 12:57 #3
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
Avatar billede simon_iknow Nybegynder
14. april 2004 - 13:39 #4
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
Avatar billede simon_iknow Nybegynder
15. april 2004 - 09:03 #5
Jeg har lukket spørgsmålet..... Prøver at finde en anden løsning
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