Hi!
Vielen Dank für die schnelle Antwort.. deine Notizen habe ich vermerkt, sorry für die falsche Form!
Ich habe das ganze jetzt eingegeben und es funktioniert, bis zur dritten Wiederholung, bis dann mal wieder eine Sachnummer freigelassen ist..
Dann kommt die Fehlermeldung "Laufzeitfehler 91, Objektvariable oder With-Blockvariable nicht festgelegt".
Er markiert die Stelle mit set = o.cells [..] - sprich, es ist kein Wert für Stelle vorhanden.. das verstehe ich nicht ganz, die Bedingung sagt doch eigentlich, dass bei leerer "Stelle" wieder zu s_continue gesprungen wird? Oder liegt das an dem was du bzgl. IsEmpty gesagt hattest? Ich habe es mit if stelle = "" versucht, dann kommt aber die gleiche Fehlermeldung.. Weißt du wie man das am besten beheben kann?
Option Explicit
Sub Aufheben()
Dim WsTabelle As Worksheet
Dim woche, s, stelle, o As Range
Dim w, a, b As Integer
Dim i As Variant
Dim test As Long
Dim KW, Jahr, wert, AktuellesBlatt, StartBlatt, EndBlatt, AnzahlBlätter, Spalte, firstadress, Reihe, Zeile, sachnummer, IST As String
StartBlatt = Sheets(1).Name
AnzahlBlätter = ThisWorkbook.Sheets.Count
For w = 1 To 3 'Worksheets.Count - 1
With Worksheets(w)
KW = Mid(.Name, 1, 4)
Jahr = Right(.Name, 2)
Spalte = "20" & Jahr & KW
For Each s In .Range("G3:G2000")
If s.Value = "" _
Then GoTo s_continue
sachnummer = s.Value
IST = s.Offset(0, 8).Value
With Sheets("Übersicht").Range("A1:XX2000")
Set woche = .Find(Spalte, LookIn:=xlValues)
If IsEmpty(woche) _
Then GoTo s_continue
Set stelle = .Find(sachnummer, LookIn:=xlValues)
If IsEmpty(stelle) _
Then GoTo s_continue
Set o = .Cells(stelle.Row, woche.Column)
o.Value = IST
End With
s_continue:
Next s
End With
Next
End Sub
|