Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Überlauf

Forumthread: Überlauf

Überlauf
Artur
Hallo User,
ich habe ein Problem mit einer Berechnung in VBA.
Dim feld As Long
feld = 5 * 40 * 345 (= 69000)
Bei der Variablendeklaration mit Long bekomme ich einen Überlauf.
Für einen Tip wäre ich dankbar.
Gruß Artur
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 20:23:02
robert
AW: einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 20:26:23
Artur
Hallo Robert,
zunächst einmal Danke für Deine Hilfe. Kannst Du mir erklären was CLng() bedeutet.
Gruß Artur
AW: einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 20:35:47
robert
Hi,
ich bin im erklären nicht so gut ;-) und im Prinzip froh, wenn etwas funktioniert!
Aber auch CLng findest Du in der Hilfe.
Gruß
robert
Anzeige
AW: einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 21:17:59
Artur
Hallo Robert,
werde ich mal reinschauen.
gruß Artur
AW: einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 23:13:04
Reinhard
Hallo Artur,
dein Ursprungscode so umgeschrieben funktioniert bestens:
Sub tt()
Dim feld As Long, a As Long, b As Long, c As Long
a = 5
b = 40
c = 345
feld = a * b * c
MsgBox feld
End Sub

und auch so:
Sub tt2()
Dim feld As Long
feld = CLng(5) * CLng(40) * CLng(345)
MsgBox feld
End Sub

Das bedeutet für mich und meine bescheidenen Kenntnisse daß "5*40*345 ETWAS ergibt was vom
Typ her nicht zu dem Long-Typ von feld passt.
Warum, wieso, k.A., deshalb Frage noch offen.
CLng ist einfach erklärt, es wandelt das in Klammern in einen Longwert um.
Ein Fehler kommt wenn in der Klammer etwas ist was sich nicht zu einer Zahl umbilden läßt.
Zu meinem Gesamtunverständnis in dieser Angelegenheit gehört auch dazu daß
Sub tt3()
Dim feld As Long
feld = CLng(5 * 40 * 345)
MsgBox feld
End Sub

NICHT funktioniert.*rätsel*
aaaaargs,*schäm* jetzt (erst :-( ) beim Schreiben kam ich auf die Lösung. Eine 5 ist ja Integer. Nachprüfbar mit
Msgbox typename(5)
Also ergibt 5 * 40 * 345 theoretisch auch eine Integerzahl. Aber Integer geht nur bis 32xxx, ergo
Überlauf.
Frage nicht mehr offen
Gut's Nächtle
Reinhard
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18