Anzeige
Archiv - Navigation
1256to1260
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ü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

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

Betreff
Benutzer
Anzeige
einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 18:23:02
robert
AW: einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 18: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 18: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
AW: einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 19:17:59
Artur
Hallo Robert,
werde ich mal reinschauen.
gruß Artur
AW: einmal in die Hilfe-Funktion schauen-Gruß
13.04.2012 21: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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige