VBA - Überlauf Fehler 6

  • geschlossen
  • Excel

  • AS-123
  • 2162 Aufrufe 3 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • VBA - Überlauf Fehler 6

    Hallo All
    folgendes VBA Problem ich habe ein recht großes Makro zur Erstellung eines Diagrammes. Nun kommt eine Fehlermeldung "Debuggen - Fehler 6 - Überlauf" dabei habe ich gerade mal 130 Daten erfasst. Hatte unter Excel 2003 das gleiche Diagramm aber dort konnte ich wenigstens 30000 Daten erfassen. Jetzt unter Excel 2007 musste ich aber die Diagramm erstellung mittels Makro realiesieren weil ansonsten das eingebettete Diagramm einfach keine neuen Daten anzeigen will. Vielleicht hat jemand hier einen Tipp für mich.
    Makro:
    Sub dia_erstellen_bei_Kursabfrage()
    'erstellt das DIA bei der Kursabfrage wird also im Modul Kurs mit Call aufgerufen
    'erstellt das Diagramm
    'es werden immer nur die Daten geschrieben die von B125 an auftauchen
    Dim lku As Byte
    Dim dia As ChartObject
    Dim Name As String
    '-------------------------------------------------------------------------------------------------------------
    Name = Sheets("IAbfr").Range("A1") 'ermittelt den Blattnamen
    lku = Worksheets(Name).Cells(Rows.Count, 2).End(xlUp).Row 'lku ist der letzte erfaste Kurs

    Worksheets(Name).ChartObjects(1).Delete
    Set dia = Worksheets(Name).ChartObjects.Add(8, 1030, 760, 430)
    dia.Name = "Kurs"

    If lku = 125 Then

    With dia.Chart
    .ChartType = xlLine
    .SetSourceData Source:=Worksheets(Name).Range("B125:D" & lku)
    .SeriesCollection(1).XValues = Worksheets(Name).Range("B125:B" & lku)
    .SeriesCollection(1).Name = "=""Kurs"""
    End With

    Else

    With dia.Chart
    .SetSourceData Source:=Worksheets(Name).Range("B125:D" & lku)
    .ChartType = xlLine
    .SeriesCollection(1).XValues = Worksheets(Name).Range("B125:B" & lku)
    .SeriesCollection(1).Name = "=""Kurs"""
    .SeriesCollection(2).Name = "=""G/V"""
    End With

    End If

    End Sub

    Danke schon mal im Voraus.
    [SIZE="1"]mehr Infos[/SIZE]

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von AS-123 ()

  • Hallo
    Danke für den Tipp.
    lku ist eigentlich keine Nachkommastelle sondern nur die Zahl der letzten vollen Zelle gerechnet von unten bis 125. Deshalb hatte ich Byte genommen hab jetzt aber auf Single umgestellt und es scheint nun zu funzen warum auch immer.
    Excel 2007 hat halt so seine Eigenarten. :mad:
    Danke und noch schönes WE
    [SIZE="1"]mehr Infos[/SIZE]
  • AS-123 schrieb:

    lku ist eigentlich keine Nachkommastelle sondern nur die Zahl der letzten vollen Zelle gerechnet von unten bis 125. Deshalb hatte ich Byte genommen
    Prima, wie im Lehrbuch (das meine ich positiv!). ich habe genau so gehandelt. Allerdings bin ich davon abgekommen, den Datentyp BYTE zu verwenden. Heute haben wir ja etwas mehr an Arbeitsspeicher und da gönne ich mir INTEGER oder SINGLE bzw. die nächstgrößere Variante.
    hab jetzt aber auf Single umgestellt und es scheint nun zu funzen warum auch immer.
    Excel 2007 hat halt so seine Eigenarten. :mad:

    Ich kennen die 2007er Version nicht, aber schau doch einmal nach, welchen Zahlenbereich (jetzt) BYTE umfasst. Es muss ja nicht 0..255 sein, es kann ja auch -128..+127 sein. Das würde zumindest das merkwürdige Verhalten erklären.
    Internette Grüße
    von der Nautilus
    cpt. Nemo