Herbers Excel-Forum - das Archiv

Überlauf in Schleife

Bild

Betrifft: Überlauf in Schleife
von: Steffen
Geschrieben am: 02.10.2003 16:27:52
Hallo und guten Tag,

ich habe folgenden CODE

Sub asw_einsetzen()
'Daten aus Originaldatei in Auswertungsdatei übernehmen
Dim quelldaten As Byte
Dim aswdaten As Byte
'Dim suchspalte As String
Dim eintragungsspalte As Byte
Dim intRow As Integer
Dim WS1 As Worksheet, WS2 As Worksheet
Dim i As Integer
Set WS1 = Workbooks("NW_ZL_MLDG_2003.xls").Worksheets("Daten")
Set WS2 = Workbooks("NW_ZL_MLDG_2003.xls").Worksheets("asw_druck")
hzasw = Workbooks(ThisWorkbook.Name).Worksheets("allgemein").Range("J64").Value
hzaswII = Workbooks(ThisWorkbook.Name).Worksheets("allgemein").Range("J65").Value
hzaswIII = Workbooks(ThisWorkbook.Name).Worksheets("allgemein").Range("N65").Value
intRow = WS1.Cells(Rows.Count, 7).End(xlUp).Row
suchspalte = Workbooks(ThisWorkbook.Name).Worksheets("allgemein").Range("N63").Value
'schutz aufheben
WS2.Unprotect (PSWDTP)
aswdaten = 3
For quelldaten = 3 To intRow
'Abfrage für normale Begriffe
If WS1.Cells(quelldaten, suchspalte).Value = hzasw And WS1.Cells(quelldaten, suchspalte).Value <> "" Then
For eintragungsspalte = 1 To 36
WS2.Cells(aswdaten, eintragungsspalte).Value = WS1.Cells(quelldaten, eintragungsspalte).Value
Next eintragungsspalte
WS2.Cells(aswdaten, 4).Value = aswdaten - 2
aswdaten = aswdaten + 1
'Abfrage für ganze Bereiche
ElseIf WS1.Cells(quelldaten, suchspalte).Value >= hzaswII And WS1.Cells(quelldaten, suchspalte).Value <= hzaswIII And WS1.Cells(quelldaten, suchspalte).Value <> "" And hzaswIII <> "" Then
For eintragungsspalte = 1 To 36
WS2.Cells(aswdaten, eintragungsspalte).Value = WS1.Cells(quelldaten, eintragungsspalte).Value
Next eintragungsspalte
WS2.Cells(aswdaten, 4).Value = aswdaten - 2
aswdaten = aswdaten + 1
'Abfrage für Beträge
ElseIf WS1.Cells(quelldaten, suchspalte).Value > 0 And suchspalte >= 20 And suchspalte <> 33 Then
For eintragungsspalte = 1 To 36
WS2.Cells(aswdaten, eintragungsspalte).Value = WS1.Cells(quelldaten, eintragungsspalte).Value
Next eintragungsspalte
WS2.Cells(aswdaten, 4).Value = aswdaten - 2
aswdaten = aswdaten + 1
Else
End If
Next quelldaten
'Änderungen einschalten
Application.ScreenUpdating = True
'Auswertungsdaten nummerieren
nummerieren_asw
'schutz setzen
WS2.Protect Password:=PSWDTP, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
End Sub


Mein Problem ist jetzt, dass Excel einen Überlauf bei folgender Zeile bringt:

For quelldaten = 3 To intRow

Ich habe in meiner Tabelle 385 Datensätze und Excel steigt bei ca. 250 Datensätze mit dem Fehler aus: Laufzeitfehler 6 Überlauf.

Meine Tabelle wird sicherlich noch größer, wie bekomme ich den Fehler weg?

Danke schonmal

Steffen
Bild

Betrifft: AW: Überlauf in Schleife
von: PeterW
Geschrieben am: 02.10.2003 16:31:45
Hallo Steffen,

schau dir mal die Dimensionierung von Quelldaten an.

Gruß
Peter
Bild

Betrifft: AW: Überlauf in Schleife
von: GraFri
Geschrieben am: 02.10.2003 16:54:06
Hallo

Hallo

Der Datentyp Byte hat nur einen Bereich bis 255.
Besser wäre Datentyp Integer (+/- 32768) bzw. Datentyp Long (+/- 2147483648)

mfg, GraFri

mfg, GraFri
Bild

Betrifft: Danke Dir,
von: Steffen
Geschrieben am: 03.10.2003 10:16:17
mit Long ging es super

Steffen
 Bild
Excel-Beispiele zum Thema " Überlauf in Schleife"
In einer Schleife auf Elemente einer UserForm zugreifen CheckBoxes in UserForms in eine Schleife einbinden
Gruppe von UserForm-ListBoxes über eine Schleife ansprechen UserForm-Optionsfelder über eine Schleife zurücksetzen