Bei folgendem Code bekomme ich immer einen Laufzeitfehler 91.
Das Problem ist das die Variable rng trotz Set Anweisung auf Nothing festgelegt ist. Bin ziemlicher anfänger und um jeden Tipp dankbar.
Sub BuchungenAnlegen_EingabeDB()
Dim tbl As ListObject
Dim header As Variant
Dim Spalte As Long
Spalte = 1
Dim Zeile As Long
Dim rng As Range
Call ws_Unprotect("Produkte", ws_Eingabe, ws_DB)
With Worksheets(ws_DB)
Set tbl = .ListObjects(1)
tbl.ListRows.Add
Zeile = tbl.DataBodyRange.Rows.Count
.Rows(Zeile + tbl.HeaderRowRange.Row).RowHeight = .Rows(tbl.HeaderRowRange.Row + 1).RowHeight
End With
With Worksheets(ws_Eingabe)
For Each header In tbl.HeaderRowRange
tbl.DataBodyRange(Zeile, Spalte).Value = _
.Range(.Cells.Find(what:=header, LookIn:=xlValues, Lookat:=xlWhole).Offset(0, 1).Address).Value
If header = "Menge" Then
Set rng = ThisWorkbook.Worksheets("Produkte").Columns("D").Find(what:=.Range("K24").Value, LookIn:=xlValues, Lookat:=xlWhole).Offset(0, 3)
If .Range("K20").Value = "Kauf" Then
rng.Value = rng.Value + .Range("Q20").Value
Else
rng.Value = rng.Value - .Range("Q20").Value
End If
End If
Spalte = Spalte + 1
Next header
End With
Call ws_Protect("Produkte", ws_Eingabe, ws_DB)
Call Nav_Buchungen
tbl.DataBodyRange(Zeile, 1).Select
ActiveWindow.ScrollRow = Zeile + tbl.HeaderRowRange.Row
End Sub
|