AW: Weiß micht mehr weiter, dauernd Laufzeitfehler1004
22.08.2003 17:43:30
Hajo_Zi
Hallo Peter
Du muttest den Leuten im Forum ganz schön was zu. Auf den ersten Blick würde ich schreinben Deine Vergleiche und Fpor Next Schleifen überschneiden sich. Ein If in einer Schleife muß auch in der Schleife abgeschlossen werden und ein If vor der Schleife muß auch nach der Schleife abgeschlossenen werden und nich in der Schleife.
Ich habe mal Hans sein Tool drüberlaufen lassen. Nach dem ersten festgestellten Fehler habe ich es mir nicht weiter angesehen. Das With habe ich angepast.
Private Sub UserForm_Initialize()
Call startparm
iRowL = Sheets("Custtabblatt").Cells(Rows.Count, 27).End(xlUp).Row
For iRow = 1 To iRowL
If Not IsEmpty(Sheets("Custtabblatt").Cells(iRow, 27)) And Not Sheets("Custtabblatt").Cells(iRow, 27) = "Kopfblatt" And Not Sheets("Custtabblatt").Cells(iRow, 27) = "Schnitt" And Not iRow = 1 Then
Dblatt = Sheets("Custtabblatt").Cells(iRow, 27)
With Worksheets(Dblatt)
zeila1 = 1 'Startzeile links
zeilb1 = 1 'Startzeile rechts
Liga = "" 'Grundzuweisung für Blattnr
Ligaa = "" 'Grundzuweisung für Liganamen
' Linke Spalte löschen+aktualisieren
Dim i%
For i = 1 To 3 ' 3mal machen da 3 Ligen Platz haben links
spalta = 1 'linke Seite des Blattes festlegen
Liga = Sheets(Dblatt).Cells(zeila1, spalta).Value 'Ligablatt feststellen
' Alte Werte löschen
spalta = 2
Sheets(Dblatt).Cells(zeila1, spalta).ClearContents 'Liganamen löschen
spalta = 1
zeila1 = zeila1 + 2
.Range(Cells(zeila1, 1), Cells((zeila1 + 5), 2)).ClearContents 'Sptag u Heim kein Nachholsp
.Range(Cells(zeila1, 4), Cells((zeila1 + 5), 4)).ClearContents 'Gast kein Nachh.
.Range(Cells(zeila1, 6), Cells((zeila1 + 5), 6)).ClearContents 'Heim Holz kein Nachh.
.Range(Cells(zeila1, 8), Cells((zeila1 + 5), 8)).ClearContents 'Gast kein Nachh.
.Range(Cells(zeila1, 10), Cells((zeila1 + 11), 14)).ClearContents ' Tabelle
zeila1 = zeila1 + 7
.Range(Cells(zeila1, 1), Cells((zeila1 + 3), 2)).ClearContents 'Sptag u Heim Nachhol
.Range(Cells(zeila1, 4), Cells((zeila1 + 3), 4)).ClearContents 'Gast Nachh.
.Range(Cells(zeila1, 6), Cells((zeila1 + 3), 6)).ClearContents 'Heimholz Nachh.
.Range(Cells(zeila1, 8), Cells((zeila1 + 3), 8)).ClearContents 'Gastholz Nachh.
zeila1 = zeila1 + 4
.Range(Cells(zeila1, 2), Cells(zeila1, 8)).ClearContents 'Einzelbester
If Liga > "0" Then ' wenn nichts drinstehen soll (0) erkennen
spalta = 2 'linke Seite des Blattes festlegen
zeila1 = zeila1 - 13 'Startzeile links
ABwahl_1 = Liga
Call Ligablatt_akt
.Cells(zeila1, spalta).Value = (Sheets(Liga).Range("B1").Value & " " & Sheets(Liga).Range("J2").Value) 'Liganamen eintragen
spalta = 1
zeila1 = zeila1 + 2
Sheets(Liga).Range("U42:V47").Copy
.Cells(zeila1, 1).PasteSpecial xlValues 'Sptag u Heim
Sheets(Liga).Range("W42:W47").Copy
.Cells(zeila1, 4).PasteSpecial xlValues 'Gast
Sheets(Liga).Range("X42:X47").Copy
.Cells(zeila1, 6).PasteSpecial xlValues 'Heimholz
Sheets(Liga).Range("Y42:Y47").Copy
.Cells(zeila1, 8).PasteSpecial xlValues 'Gastholz
Sheets(Liga).Range("V152:Z163").Copy
.Cells(zeila1, 10).PasteSpecial xlValues 'Tabelle
zeila1 = zeila1 + 7
Sheets(Liga).Range("U49:V52").Copy
.Cells(zeila1, 1).PasteSpecial xlValues 'Sptag u Heim NH
Sheets(Liga).Range("W49:W52").Copy
.Cells(zeila1, 4).PasteSpecial xlValues 'Gast NH
Sheets(Liga).Range("X49:X52").Copy
.Cells(zeila1, 6).PasteSpecial xlValues 'Heimholz NH
Sheets(Liga).Range("Y49:Y52").Copy
.Cells(zeila1, 8).PasteSpecial xlValues 'Gastholz NH
zeila1 = zeila1 + 4
Sheets(Liga).Range("V16").Copy
.Cells(zeila1, 2).PasteSpecial xlValues 'EB Name
Sheets(Liga).Range("W16").Copy
.Cells(zeila1, 4).PasteSpecial xlValues 'EB Verein
Sheets(Liga).Range("X16").Copy
.Cells(zeila1, 6).PasteSpecial xlValues 'EB Holz
Else ' dieses Else gehört zu einem If vor der Schleife
zeila1 = zeila1 - 13
.Cells(zeila1, 2).Value = "nicht vergeben"
zeila1 = zeila1 + 13
End If ' dieses Endif gehört zu einem If vor der Schleife
zeila1 = zeila1 + 1
Next
' Rechte Spale aktualisieren
Dim j%
For j = 1 To 3
spaltb = 16 'linke Seite des Blattes festlegen
Liga = .Cells(zeilb1, spaltb).Value 'Ligablatt feststellen
' Alte Werte löschen
spaltb = 17
.Cells(zeilb1, spaltb).ClearContents 'Liganamen löschen
spaltb = 16
zeilb1 = zeilb1 + 2
.Range(Cells(zeilb1, 16), Cells((zeilb1 + 5), 17)).ClearContents 'Sptag u Heim kein Nachholsp
.Range(Cells(zeilb1, 19), Cells((zeilb1 + 5), 19)).ClearContents 'Gast kein Nachh.
.Range(Cells(zeilb1, 21), Cells((zeilb1 + 5), 21)).ClearContents 'Heim Holz kein Nachh.
.Range(Cells(zeilb1, 23), Cells((zeilb1 + 5), 23)).ClearContents 'Gast kein Nachh.
.Range(Cells(zeilb1, 25), Cells((zeilb1 + 11), 29)).ClearContents ' Tabelle
zeilb1 = zeilb1 + 7
.Range(Cells(zeilb1, 16), Cells((zeilb1 + 3), 17)).ClearContents 'Sptag u Heim Nachhol
.Range(Cells(zeilb1, 19), Cells((zeilb1 + 3), 19)).ClearContents 'Gast Nachh.
.Range(Cells(zeilb1, 21), Cells((zeilb1 + 3), 21)).ClearContents 'Heimholz Nachh.
.Range(Cells(zeilb1, 23), Cells((zeilb1 + 3), 23)).ClearContents 'Gastholz Nachh.
zeilb1 = zeilb1 + 4
.Range(Cells(zeilb1, 17), Cells(zeilb1, 23)).ClearContents 'Einzelbester
If Liga > "0" Then ' wenn nichts drinstehen soll (0) erkennen
spaltb = 17 'linke Seite der rechten Spalte festlegen
zeilb1 = zeilb1 - 13 'Startzeile rechts
ABwahl_1 = Liga
Call Ligablatt_akt
.Cells(zeilb1, spaltb).Value = (Sheets(Liga).Range("B1").Value & " " & Sheets(Liga).Range("J2").Value) 'Liganamen eintragen
spaltb = 16
zeilb1 = zeilb1 + 2
Sheets(Liga).Range("U42:V47").Copy
.Cells(zeilb1, 16).PasteSpecial xlValues 'Sptag u Heim
Sheets(Liga).Range("W42:W47").Copy
.Cells(zeilb1, 19).PasteSpecial xlValues 'Gast
Sheets(Liga).Range("X42:X47").Copy
.Cells(zeilb1, 21).PasteSpecial xlValues 'Heimholz
Sheets(Liga).Range("Y42:Y47").Copy
.Cells(zeilb1, 23).PasteSpecial xlValues 'Gastholz
Sheets(Liga).Range("V152:Z163").Copy
.Cells(zeilb1, 25).PasteSpecial xlValues 'Tabelle
zeilb1 = zeilb1 + 7
Sheets(Liga).Range("U49:V52").Copy
.Cells(zeilb1, 16).PasteSpecial xlValues 'Sptag u Heim NH
Sheets(Liga).Range("W49:W52").Copy
.Cells(zeilb1, 19).PasteSpecial xlValues 'Gast NH
Sheets(Liga).Range("X49:X52").Copy
.Cells(zeilb1, 21).PasteSpecial xlValues 'Heimholz NH
Sheets(Liga).Range("Y49:Y52").Copy
.Cells(zeilb1, 23).PasteSpecial xlValues 'Gastholz NH
zeilb1 = zeilb1 + 4
Sheets(Liga).Range("V16").Copy
.Cells(zeilb1, 17).PasteSpecial xlValues 'EB Name
Sheets(Liga).Range("W16").Copy
.Cells(zeilb1, 19).PasteSpecial xlValues 'EB Verein
Sheets(Liga).Range("X16").Copy
.Cells(zeilb1, 21).PasteSpecial xlValues 'EB Holz
Else
zeilb1 = zeilb1 - 13
.Cells(zeilb1, 17).Value = "nicht vergeben"
zeilb1 = zeilb1 + 13
End If
zeilb1 = zeilb1 + 1
Next
End With
End If
Next iRow
Call endparm
End Sub
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.
Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.