Supportnet / Forum / Tabellenkalkulation
1x Überlauf, 1x nicht ( fast gleicher code) suche nach kritischen Augen
Frage
Moin,
ich habe folgendes Problem:
Ich habe eine Tabelle, aus der sich jm selber ein intervall und die anzahl der Monate selbst wählen darf.
das ganze gibt es genau 2x in der datei. einmal für eine anzahk besucher und einmal für den umsatz.
beim umsatz gibt es die fehlermeldeung überlauf, bei der anzahl nicht...
habe schon ein wenig mit den bezeichnern gespielt... evt liegt es ja daran!?
Der Überlauffehler tritt bei Monate größer 5 auf!
ich versteh das leider nicht.... drehe gleich durch^^
hier läuft es mit jeder anzahl von monaten Code:
[code]Sub ChartErzeugen()
Dim m As Integer
Dim n As Integer
Dim d As Single
Dim s As Long
Dim x As Integer
Dim i As Single
Dim u As Integer
Dim o As Integer
Dim l As Integer
Dim Monate As Integer
With Sheets(14)
u = InputBox("untere Intervallsgrenze")
o = InputBox("obere Intervallsgrenze")
Monate = InputBox("Wie viele Monate möchten Sie angezeigt bekommen?")
Application.StatusBar = "Haben sie bitte etwas Gedult, Daten werden erstellt !"
Application.ScreenUpdating = False
Sheets(24).Range("A6:D65000").Clear
l = Sheets(24).ChartObjects.Count
If l > 0 Then
Sheets(24).ChartObjects.Delete
End If
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets(24).Range("G15")
For m = 1 To Monate
For x = u To o
d = d + .Range("A" & x - 3) * .Cells(x - 3, m + 1)
s = s + .Cells(x - 3, m + 1)
Next x
i = d / s
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(m).Values = i
ActiveChart.SeriesCollection(m).Name = .Cells(6, m + 1)
Next m
ActiveChart.SeriesCollection(1).XValues = "Durchschnittlicher index im angegebenen Intervall" ´.Cells(5, 2)
ActiveChart.Location Where:=xlLocationAsObject, Name:="persönlich"
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Characters.Text = " Intervall " & u & " - " & o ´.Cells(6, 1)
Sheets(24).Range("A6:D65000").Interior.ColorIndex = 15
Sheets(24).Range("A6:D65000").Interior.Pattern = xlSolid
Sheets(24).Select
Application.ScreenUpdating = True
Application.StatusBar = False
End With
End Sub [/code]
und hier kommt es immer wieder zum Überlauf
Code:
[code]Sub UmsatzChartErzeugen()
Dim m As Long
Dim n As Long
Dim d As Single
Dim s As Long
Dim x As Long
Dim i As Single
Dim u As Long
Dim o As Long
Dim l As Long
Dim Monate As Long
With Sheets(16)
u = InputBox("untere Intervallsgrenze")
o = InputBox("obere Intervallsgrenze")
Monate = InputBox("Wie viele Monate möchten Sie angezeigt bekommen?")
Application.StatusBar = "Haben sie bitte etwas Gedult, Daten werden erstellt !"
Application.ScreenUpdating = False
Sheets(24).Range("A6:D65000").Clear
l = Sheets(24).ChartObjects.Count
If l > 0 Then
Sheets(24).ChartObjects.Delete
End If
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets(24).Range("G15")
For m = 1 To Monate
For x = u To o
s = s + .Cells(x - 3, m + 1) ´ Summe
Next x
i = s
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(m).Values = i
ActiveChart.SeriesCollection(m).Name = .Cells(6, m + 1)
Next m
ActiveChart.SeriesCollection(1).XValues = "Umsatzsumme im angegebenen Intervall" ´ .Cells(5, 2)
ActiveChart.Location Where:=xlLocationAsObject, Name:="persönlich"
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Characters.Text = " Intervall " & u & " - " & o
Sheets(24).Range("A6:D65000").Interior.ColorIndex = 15
Sheets(24).Range("A6:D65000").Interior.Pattern = xlSolid
Sheets(24).Select
Application.ScreenUpdating = True
Application.StatusBar = False
End With
End Sub [/code]
Wäre klasse wenn ihr mir helfen könntet... sehe grade den Wald vor lauter Bäumen nicht mehr...
werde mir jetzt noch einen Kaffe holen sonst ist der Tag gleich fürn A****
Gruß
Hansen
Antwort 1 von cmkatz
Hallo,
an welcher Stelle genau passiert den der Überlauf?
Gruß
cmkatz
an welcher Stelle genau passiert den der Überlauf?
Gruß
cmkatz
Antwort 2 von Hansen
wäre gut gewesen das zu erwähnen oder :-D
der überlauf passiert hier:
der überlauf passiert hier:
s = s + .Cells(x - 3, m + 1) ´ Summe Antwort 3 von cmkatz
Wie groß sind denn die Werte so, die da addiert werden?
erreichen die –9.223.372.036.854.755.807 bis +9.223.372.036.854.755.807 ??
Wohl eher nicht, oder?
Gruß
cmkatz
erreichen die –9.223.372.036.854.755.807 bis +9.223.372.036.854.755.807 ??
Wohl eher nicht, oder?
Gruß
cmkatz
Antwort 4 von nighty
hi all :))
bei den zuweisungen der zeilen wie spalten sollte die 1 nicht unterschritten werden,
mit f8 einzelschrittabarbeitung und anschliessender kontrolle der var (mit der mouse auf die var im quelltext ,zeigt dir den momentanen wert an)könnte man die fehlersuche vereinfachen.
wenn zum beispiel x=2 zugewiesen wurde
dann hätte ja x-3 einen minuswert ???
gruss nighty
bei den zuweisungen der zeilen wie spalten sollte die 1 nicht unterschritten werden,
mit f8 einzelschrittabarbeitung und anschliessender kontrolle der var (mit der mouse auf die var im quelltext ,zeigt dir den momentanen wert an)könnte man die fehlersuche vereinfachen.
wenn zum beispiel x=2 zugewiesen wurde
dann hätte ja x-3 einen minuswert ???
gruss nighty
Antwort 5 von Hansen
Danke für die Tipps.
Der Wert 9.223.372.036.854.755.807 wird nicht überschritten und x ist minimum 10, kommt damit also nicht ins negative.
Gruß
Hansen
Der Wert 9.223.372.036.854.755.807 wird nicht überschritten und x ist minimum 10, kommt damit also nicht ins negative.
Gruß
Hansen

