Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
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 Problem 6

Überlauf Problem 6
29.07.2014 09:46:10
Showd0wn
Hallo,
ich habe ein Problem mit dem Überlauf. Ich habe ziemlich viele Zeile (ca. 3500) und Spalten bis BC. Anfangs (mit ca. 2500 Zeilen) hat das alles problemlos funktioniert. Jetzt kommt aber bei der zweiten kursiven Zeile ein Überlauf Fehler.
Anfangs hatte ich auch nur eine Range von A:BC, wengen des Überlaufes habe ich gedacht, splitte ich das und mache 2 Range Objekte (var_Daten & var_Daten_Erweiterung). Aber auch das klappt nicht, bei dem 2. Objekt kommt immer ein Überlauffehler. Auch wenn ich in das 2. Objekt nur eine Zeile lege und in das erste alle anderen, kommt der Überlauffehler beim 2.
Wie kann ich das Problem lösen?
hier mein Code:
Dim i, j, k As Integer
Dim lng, row_Mas, row_Mas_2 As Double
Dim var_Daten, var_Daten_Erweiterung, var_Mas As Variant
Dim wksDaten As Worksheet
Const cstrDat As String = "*****"
Set wksDaten = Workbooks.Open(cstrDat).Sheets("***")
Windows(wksDaten.Parent.Name).Visible = False
ThisWorkbook.Activate
lng = wksDaten.Cells(Rows.Count, 3).End(xlUp).Row
var_Daten = wksDaten.Range("A9:AK" & lng).Value
row_Mas = Tabelle1.Cells(Rows.Count, 2).End(xlUp).Row
var_Mas = Tabelle1.Range("B4:U" & lng).Value
j = 4
For i = 1 To (lng - 8)
Tabelle1.Cells(j, 2).Value = var_Daten(i, 3)
Tabelle1.Cells(j, 3).Value = var_Daten(i, 5)
Tabelle1.Cells(j, 4).Value = var_Daten(i, 7)
…
j = j + 1
Next
var_Daten_Erweiterung = wksDaten.Range("AL9:BC" & lng).Value j = 4
For i = 1 To (lng - 8)
Tabelle1.Cells(j, 10).Value = var_Daten_Erweiterung (i, 3)
Tabelle1.Cells(j, 11).Value = var_Daten_Erweiterung (i, 4)
Tabelle1.Cells(j, 12).Value var_Daten_Erweiterung (i, 5)
...
Next
…
Gruß

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Überlauf Problem 6
29.07.2014 09:52:39
Hajo_Zi
Zeilen sollte man immer als Long definieren, da mehr als 32 tausend möglich.

AW: Überlauf Problem 6
29.07.2014 10:04:39
Nepumuk
Hallo,
Und täglich Grüßt das Murmeltier.
Wie viele Jahrzehnte mögen noch ins Land gehen, bis auch der letzte mitbekommen hat dass das:
Dim i, j, k As Integer
FALSCH ist. Die Variable k ist in dem Fall ein Integer, i und j aber ein Variant weil du keine Angaben zur Dimension machst. Also:
Dim i As Integer, j As Integer, k As Integer
Ich hab schon in verschiedenen Sprachen programmiert, das ist immer so. Bzw. mir ist noch keine untergekommen in der das anders wäre.
Wobei du diesen Datentyp grundsätzlich meiden solltest außer du hast eine Funktion welche einen Integer-Wert zurück gibt oder erwartet. Die 6 gesparten Bytes für die 3 Variablen, im Vergleich zum Long-Datentyp, spielen bei 512MB die du für das VBA-Projekt zur Verfügung hast keine Rolle. Deine Tabelle hat 1.048.576 Zeilen, Integer reicht aber nur bis 32.767 also nur für das erste Drittel der Tabelle. Aber das nur am Rande.
Welchen Wert hat die Variable "lng" wenn der Fehler ausgelöst wird?
Gruß
Nepumuk

Anzeige
AW: Überlauf Problem 6
29.07.2014 11:52:07
{Boris}
Deine Tabelle hat 1.048.576 Zeilen, Integer reicht aber nur bis 32.767 also nur für das erste Drittel der Tabelle.
So ein Verschreiber aus Deinem "Munde" - historisch! ;-))
VG, Boris

Easy, Boris... 3.12% sind doch fast 1 Drittel ;-)
29.07.2014 12:59:52
EtoPHG

AW: Überlauf Problem 6
29.07.2014 14:46:31
Showd0wn
Danke für die vielen Anworten, aber leider funkioniert das immer noch nicht. Egal ob ich i, j als Long mache oder als Variant, immer wieder Laufzeitfehler '6' Überlauf. (Und auch lng,row_Mas, row_Mas_2 habe ich probiert in Long oder Variant zu ändern)
Dim i, j, k As Long: das sind meine Zählvariablen für die Zeilen (k, wird erst später gebraucht, das ist in diesem ersten Teil nicht relevant)
Dim lng, row_Mas, row_Mas_2 As Long: das ist jeweils die letzte Zeile der Datei (row_Mas_2 wird ebenfalls erst später gebraucht)
Noch eine Idee woran das liegen könnte?

Anzeige
Lad mal die Datei...
29.07.2014 15:08:32
{Boris}
Hi,
...hoch - abgespeckt auf das Problem.
VG, Boris

Aus deinem Code geht ansonsten nicht hervor, ...
29.07.2014 15:26:12
Luc:-?
…wo der Fehler sonst noch liegen könnte, ShowD0wn,
zumal wir ja auch deine Daten nicht kennen. Allerdings scheinst du Nepumuks Bemerkungen nicht beachtet und seine Frage nicht beantwortet zu haben.
Merke: Man kann wohl in kaum einer PgmierSprache einen Datentyp summarisch mehreren Variablen zuweisen, also i, j, k As Long. Das müsste dann wohl eher entweder (i, j, k) As Long heißen, was dir die VBE-SyntaxKontrolle aber nicht durchgehen lässt, oder es müsste 2 Arten von ListenTrennzeichen geben → 1× für die reine Aufzählung von Zusammengehörigem und 1× für die Aneinanderreihung von nicht direkt Zusammengehörigem (formal ähnlich wie in J[ava]Script).
Richtig wäre hier also i As Long, j As Long, k As Long oder die Benutzung der Kurz­deklarations­zeichen wie bspw nachgestelltes $ anstelle von As String. Eine weitere alternative Methode wäre die globale Deklaration nach Anfangs­buch­staben des Namens, die es schon im alten Basic gab. Das muss aber auf Modul­Ebene festgelegt und kann auch für einzelne Variablen auf Prozedur­Ebene per vollständiger Deklaration außer Kraft gesetzt wdn. Bei Weglassung des Datentyps wird der Daten­typ dann also anhand des 1.Namens­buch­stabens festgelegt und ist nur Variant, wenn das auch dasteht.
Aber das scheint ja nicht das Überlauf verursachende Problem zu sein…
Gruß, Luc :-?
Besser informiert mit …

Anzeige
bitte um Beispiel
02.08.2014 13:07:57
Tino
Hallo,
Bei Weglassung des Datentyps wird der Daten­typ dann also anhand des
1.Namens­buch­stabens festgelegt und ist nur Variant, wenn das auch dasteht.

Kannst Du dafür mal ein Beispiel zeigen?
Gruß Tino

AW: bitte um Beispiel
03.08.2014 16:01:12
EtoPHG
Hallo Tino,
Schau doch mal in die VBA-Hilfe unter Deftype-Anweisungen.
Gruess Hansueli

Genau, da sind genug Bspp! ;-) Gruß owT
03.08.2014 16:46:52
Luc:-?
:-?

ok. danke!
03.08.2014 16:47:15
Tino

AW: Überlauf Problem 6
29.07.2014 15:06:26
Showd0wn
Danke für die vielen Anworten, aber leider funkioniert das immer noch nicht. Egal ob ich i, j als Long mache oder als Variant, immer wieder Laufzeitfehler '6' Überlauf. (Und auch lng,row_Mas, row_Mas_2 habe ich probiert in Long oder Variant zu ändern)
Dim i, j, k As Long: das sind meine Zählvariablen für die Zeilen (k, wird erst später gebraucht, das ist in diesem ersten Teil nicht relevant)
Dim lng, row_Mas, row_Mas_2 As Long: das ist jeweils die letzte Zeile der Datei (row_Mas_2 wird ebenfalls erst später gebraucht)
Noch eine Idee woran das liegen könnte?

Anzeige
AW: Überlauf Problem 6
29.07.2014 10:12:58
Rudi
Hallo,
wegen des Überlaufes habe ich gedacht, splitte ich das
es gibt keinen Grund, warum der Bereich nicht komplett in ein Array eingelesen werden kann.
Überlauf=Fehler in der Variablendeklaration.
Alle numerischen Var, die Zeilen/ Spalten betreffen As Long.
Gruß
Rudi

AW: Überlauf Problem 6
29.07.2014 13:07:19
Daniel
Im prinzp kannst du Ganzzahlvariablen immer als LONG deklarieren und das INTEGER komplett streichen.
Auf nem 32-Bit-Rechner hat der Typ Integer keine Vorteile, auch nicht in der Rechengeschwindigkeit, weil eine 32-Bit-Maschine den Typ Long mit 32-Bit ebenfalls in einem Prozessortakt verarbeiten kann.
Gruß Daniel

Anzeige
AW: Überlauf Problem 6
29.07.2014 15:17:11
Daniel
HI
in welcher Zeile tritt der Fehler auf und was ist das 2. Objekt?
Gruß Daniel

AW: Überlauf Problem 6
29.07.2014 15:29:47
Showd0wn
Sorry für den Doppelpost.
Habe nochmal ein bisschen probiert mit den Datentypen, aber es klappt nicht. Habe jetzt alles als Long (außer natürlich Variant). Die maximale Zeilenanzahl liegt irgendwo zwischen 1250-1300 Danach kommt der Überlauffehler

AW: Überlauf Problem 6
29.07.2014 15:52:10
Daniel
wie wäre es, wenn du einfach mal folgende Fragen beantwortest:
1. in welcher Zeile tritt der Fehler auf?
2. welche Werte haben dann die Variablen?
das Hochladen der Datei wäre auch hilfreich.
ansonsten ist jeder weitere Beitrag hier überflüssig.
Gruß Daniel

Anzeige
AW: Überlauf Problem 6
29.07.2014 17:45:05
Showd0wn
Wie meinst das in welcher Zeile der Fehler auftritt?
Wie gesagt, bei der Zeile "var_Daten = wksDaten.Range("A9:AK" & lng).Value" kommt der Fehler. Bisher gibt es ja gar keine Variablen, da das Programm nicht soweit kommt.
nur die lng Varaible wird definiert. Die hat den Wert der letzten Zeile, irgendwas zwischen 1250-1300, genauer habe ich das noch nicht eingeschränkt.
Die Datei ist zum einen sehr groß und enthällt vertrauliche Daten, weshalb ich sie leider nicht hochladen kann.

AW: Überlauf Problem 6
30.07.2014 14:12:08
{Boris}
Hi,
daher hatte ich auch geschrieben: Hochladen - abgespeckt auf das Problem.
Schmeiss alles raus aus der Datei.
VG, Boris

Anzeige
AW: Überlauf Problem 6
31.07.2014 10:04:49
Showd0wn
Update: Ich habe nach langer Suche den Fehler gefunden. In EINER Zelle von 3500*60 Zellen, steht ein ungültiger Wert. Es ist eine Zelle im Datum-Format, aber das Datum wurde ohne Punkte eingeben also z.B. 12122012 anstelle von 12.12.2012. Deshalb hat Excel diesen Wert nicht anzeigen können und es stand nur XXXXXXXXX in der Zelle.
So ein Fehler kann ab und zu vorkommen, bei der Eingabe so vieler Zeilen. Kann ich mein Code irgendwie anpassen, so dass auch ein ungültiger Wert übernommen wird?"

Nimm .Value2 statt .Value (owT)
31.07.2014 12:30:19
EtoPHG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige