AW: Du hast What:= vergessen, ...
12.02.2013 16:47:23
Katrin
Also so sieht nun mein Code aus... Mein problem ist jetzt, dass der nicht den gefilterten Wert nimmt, der in dem beispiel in Zeile 39 ist, sondern dass er natürlich jetzt auf die 2. zeile springt. Wie kann ich das vermeiden?
Sub suchenUkopieren()
Dim ältestDat, jüngstDat, ältestDat2, jüngstDat2 As Date
Dim VK As Range
Dim C, D As Range
Set myhauptsheet = Workbooks("XXXX.xlsm").Sheets("yy")
Set mysheet2012 = Workbooks("XXXXX.xlsx").Sheets("zzz")
Set mysheet2011 = Workbooks("XXX").Sheets("iii")
myhauptsheet.Activate
Range("A1").Select
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select 'HIER geht er in Zeile 2
Set C = mysheet2012.Range("A:A").Find(myhauptsheet.Range("A2"), LookIn:=xlValues, lookAt:= _
xlWhole)
Set D = mysheet2011.Range("A:A").Find(myhauptsheet.Range("A2"), LookIn:=xlValues, lookAt:= _
xlWhole)
If Not C Is Nothing Then
GoTo Datumprüfen:
ElseIf Not D Is Nothing Then
GoTo Datumprüfen2:
GoTo Weiter:
End If
Datumprüfen:
sFilter = mysheet2012.Cells(1, 1).Value
mysheet2012.Range("$A$1").AutoFilter Field:=1, Criteria1:=C
ältestDat = Format(WorksheetFunction.Min(Range("g:g")), "dd.mm.yy")
jüngstDat = Format(WorksheetFunction.Max(Range("g:g")), "dd.mm.yy")
mysheet2012.Activate
ältestDat2 = Format(WorksheetFunction.Min(Range("g:g")), "dd.mm.yy")
jüngstDat2 = Format(WorksheetFunction.Max(Range("g:g")), "dd.mm.yy")
If ältestDat > ältestDat2 Or jüngstDat > jüngstDat2 Then
'alle Zeilen kopieren die älter oder jünger sind
Datumprüfen2:
sFilter = mysheet2011.Cells(1, 1).Value
mysheet2012.Range("$A$1").AutoFilter Field:=1, Criteria1:=D
ältestDat = Format(WorksheetFunction.Min(Range("g:g")), "dd.mm.yy")
jüngstDat = Format(WorksheetFunction.Max(Range("g:g")), "dd.mm.yy")
mysheet2012.Activate
ältestDat2 = Format(WorksheetFunction.Min(Range("g:g")), "dd.mm.yy")
jüngstDat2 = Format(WorksheetFunction.Max(Range("g:g")), "dd.mm.yy")
If ältestDat > ältestDat2 Or jüngstDat > jüngstDat2 Then
'alle Zeilen markieren kopieren die älter oder jünger sind
End If
Weiter:
End
Sub 'Springt wieder zum vorherigen Filter
Könnte man das irgendwie so schreiben:
Range("A1").Select
Cells(ActiveCell.Row + 1, ActiveCell.Column).Select