Avatar billede phuc69 Juniormester
07. september 2006 - 18:20 Der er 9 kommentarer og
1 løsning

Hvis fejl forsæt

Jeg har tidligere idag fået svar på spørgsmål

http://www.eksperten.dk/spm/73087
koden ser sådan her ud.

Sheets("Ny grafik 1").Select
    Range(grafarealet).Select
    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=Sheets("Ny grafik 1").Range(grafarealet), _
        PlotBy:=xlColumns
    ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Output"
    With ActiveChart
        .HasAxis(xlCategory, xlPrimary) = False
        .HasAxis(xlValue, xlPrimary) = True
    End With
    ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
    ActiveChart.HasLegend = False
    ActiveChart.HasDataTable = True
    ActiveChart.DataTable.ShowLegendKey = True
    ActiveChart.PlotArea.Select
    With Selection.Border
        .ColorIndex = 16
        .Weight = xlThin
        .LineStyle = xlContinuous
    End With
    Selection.Interior.ColorIndex = xlNone
    Dim i As Integer
   
   
   
    If ActiveChart.SeriesCollection.Count > 0 Then
        For i = 1 To ActiveChart.SeriesCollection.Count
         
            ActiveChart.SeriesCollection(i).Border.Weight = xlThick
       
       
        Next
       
    End If

Problemet er at den opretter grafen og laver stregerne tykke til sidst, som den skal. Men pga af nogle tidligere valg kan den godt oprette en graf som ikke er der. Så jeg skal gerne have en funktion som hoppper videre i loopet hvis grafen ikke eksistere.
Avatar billede gider_ikke_mere Nybegynder
07. september 2006 - 19:06 #1
Forkert artikelhenvisning!
Avatar billede phuc69 Juniormester
07. september 2006 - 19:08 #2
Ups ja der manglede lige et 0
http://www.eksperten.dk/spm/730870
Avatar billede gider_ikke_mere Nybegynder
07. september 2006 - 19:27 #3
Mener du om Range(grafarealet) er tomt???
Avatar billede phuc69 Juniormester
07. september 2006 - 19:36 #4
Ja og nej i denne del af koden går de forskellige grafer igennem og laver stregen fed. Men den laver fejl hvis der ikke er nogen.
If ActiveChart.SeriesCollection.Count > 0 Then
        For i = 1 To ActiveChart.SeriesCollection.Count
         
            ActiveChart.SeriesCollection(i).Border.Weight = xlThick
        next
Avatar billede gider_ikke_mere Nybegynder
07. september 2006 - 19:45 #5
grafen bliver jo lavet efter et range. Alt hvad der er i det range bliver jo oprettet i grafen.

ActiveChart.SetSourceData Source:=Sheets("Ny grafik 1").Range(grafarealet)

Du kan enten springe over fejlen kodemæssigt, eller i dit range slette den kolonne der er tom.
Avatar billede phuc69 Juniormester
07. september 2006 - 19:50 #6
Bliver desvære nød til at vente til i morgen.
Avatar billede fobian Nybegynder
07. september 2006 - 20:08 #7
Hej igen
Hvis du skriver
    On Error Resume Next
foran koden nedenfor, som du fik tidligere. Så vil macroen køre videre selvom der opstår fejl.
    If ActiveChart.SeriesCollection.Count > 0 Then
        For i = 1 To ActiveChart.SeriesCollection.Count
            ActiveChart.SeriesCollection(i).Border.Weight = xlThick
        Next
    End If

Hvis On error resume next står sidst i kodemodulet, så er det ikke kritisk. Det kobler også fejlfindingen fra, hvis der kan opstå fejl i noget efterfølgende kode.
Avatar billede phuc69 Juniormester
08. september 2006 - 12:12 #8
fobian Det var lige det der skulle til smid et svar
Avatar billede fobian Nybegynder
08. september 2006 - 13:01 #9
Det lyder godt :o)
Avatar billede gider_ikke_mere Nybegynder
08. september 2006 - 13:17 #10
Du kan cleare en fejl på følgende måde:

Private Sub CommandButton1_Click()
On Error GoTo hertil:
Range("a1").Offset(-1, -1).Select
hertil:
MsgBox Err.Number 'bare til fejlfinding
If Err.Number = 1004 Then Err.Clear
End Sub
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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