ich stelle mein Problem nochmals vor, da es leider nicht funktioniert; bekomme als Antwort: "Anwendungs- oder Objektdefinierter Fehler! Laufzeitfehler 1004"
Wenn ich in den Code nach dieser Fehlermeldung zurückgehe, bleibt der Cursor nach meiner COPY-Zeile stehen.
Was bedeutet dieses Fehlermeldung?
Hier nun mein alter Text:
Habe 2 Sheets in demselben Workbook; habe sie referenziert als WS1 (=Tabelle 1) und WS2 (=Tabelle 2)
in WS1 befinden sich eine Menge Datensätze, von denen jeweils nur ein Teil nach WS2 kopiert werden soll; Kriterium: ein Zeitraum zwischen 2 Datumsangaben.
Habe also eine untere Datumsgrenze = d1 und eine obere Datumsgrenze = d2; alle Datensätze die => d1 und Ich schicke Euch mal den Code mit; wahrscheinlich ist´s bloß ein blöder fehler, doch als Anfängerin sieht frau meist den Wald vor lauter Bäumen nicht!
Danke Euch schon mal im voraus
Salut - Hilde
Option Explicit
Dim WS1 As Worksheet
Dim WS2 As Worksheet
'''''für Herbis EXcel-Experten !! in meinen Komentaren steht DS für Datensatz (oder Datensätze)''''
Sub ZeilenLoeschen()
Set WS2 = Worksheets("Tabelle2")
Set WS1 = Worksheets("Tabelle1")
WS1.Activate
'i ist der Schleifenzähler; die Schleife wird zeilenzahl-x mal durchlaufen (da es auch zeilenzahl-x DS gibt
Dim i As Integer
i = 4
Dim x As Integer
x = 4
'y ist Zeilenzähler in WS2. Da auch hier der erste DS in die 4. Zeile kopiert werden soll, setzte ich y auf 4
Dim y As Integer
y = 4
'zeilenzahl ist die gesamtzahl an DS von WS1 (so oft soll die Schleife durchlaufen werden)
Dim zeilenzahl As Integer
Dim d1 As Date
Dim d2 As Date
Dim date_Vgl As Date
d1 = Cells(1, 1).Value
d2 = Cells(2, 1).Value
'Zur Kontrolle eingebaut
MsgBox d1
MsgBox d2
zeilenzahl = Cells(Rows.Count, 2).End(xlUp).Row
'zur Kontrolle eingebaut
MsgBox zeilenzahl
For i = x To zeilenzahl
date_Vgl = Cells(x, 2)
'zur Kontrolle, ob das Programm wirklich jeden DS überprüft
MsgBox "Zeiger steht auf Datum: " & date_Vgl
If d1 <= date_Vgl And date_Vgl <= d2 Then
!!!! HIER SCHEINTS PROBLEME ZU GEBEN !!!!
WS1.Range("Ax:Bx").Copy Destination:=WS2.Range("Ay")
'nur wenn ein Datensatz kopiert worden ist, soll der Zähler der Zeilen in WS2 hochgezählt werden,
y = y + 1
End If
x = x + 1
!!! AUCH HIER HAT ER SCHON GEMECKERT !!!!
Next i
End Sub