Objektvariable oder With-Blockvariable nicht gefunden
29.10.2023 11:20:51
TanjaU
ich versuche gerade, aus einem Formular heraus Daten in ein sogenanntes Archiv zu verschieben.
Die Originaldaten werden aus der Tabelle tb_Datenbank in das Formular tb_Eingabeformular eingegeben und sollen dann in das Archiv tb_Datenbank1 abgelegt werden.
Nun bekomme ich in einer Zeile (fett markiert) die Fehlermeldung "fehlende Objektvariable" angezeigt. Ich hoffe, ihr könnt mir hier weiterhelfen. Danke.
Option Explicit
Sub Schüler_Archivieren_EingabeDB()
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = tb_datenbank.ListObjects(1)
Dim Zeile As Long
'Schüler anlegen, bearbeiten oder archivieren?
If tb_Eingabeformular.Shapes.Range(Array("txt_Anlegen", "img_Anlegen")).Visible = True Then
'Schüler anlegen
'Zeile hinzufügen
tbl.ListRows.Add
'Zeile in Variable speichern
Zeile = tbl.DataBodyRange.Rows.Count
'Schüler archivieren
Else
Zeile = Range("Tabelle42[ID]").Find(What:=tb_Eingabeformular.Range("F12").Value _
, LookIn:=xlValues, LookAt:=xlWhole).Row - tbl.HeaderRowRange.Row
End If
'Datenbank befüllen
With tb_Eingabeformular
tbl.DataBodyRange(Zeile, 1).Value = .Range("F12").Value
tbl.DataBodyRange(Zeile, 2).Value = .Range("F17").Value
tbl.DataBodyRange(Zeile, 3).Value = .Range("F19").Value
tbl.DataBodyRange(Zeile, 4).Value = .Range("F21").Value
tbl.DataBodyRange(Zeile, 5).Value = .Range("F23").Value
tbl.DataBodyRange(Zeile, 6).Value = .Range("F25").Value
tbl.DataBodyRange(Zeile, 7).Value = .Range("F27").Value
tbl.DataBodyRange(Zeile, 13).Value = .Range("F33").Value
tbl.DataBodyRange(Zeile, 15).Value = .Range("F35").Value
tbl.DataBodyRange(Zeile, 17).Value = .Range("F37").Value
tbl.DataBodyRange(Zeile, 18).Value = .Range("F39").Value
tbl.DataBodyRange(Zeile, 20).Value = .Range("F50").Value
tbl.DataBodyRange(Zeile, 21).Value = .Range("F52").Value
tbl.DataBodyRange(Zeile, 22).Value = .Range("F54").Value
tbl.DataBodyRange(Zeile, 27).Value = .Range("F60").Value
tbl.DataBodyRange(Zeile, 28).Value = .Range("F62").Value
tbl.DataBodyRange(Zeile, 29).Value = .Range("F64").Value
tbl.DataBodyRange(Zeile, 30).Value = .Range("F66").Value
tbl.DataBodyRange(Zeile, 26).Value = .Range("F68").Value
tbl.DataBodyRange(Zeile, 8).Value = .Range("I17").Value
tbl.DataBodyRange(Zeile, 9).Value = .Range("I19").Value
tbl.DataBodyRange(Zeile, 10).Value = .Range("I21").Value
tbl.DataBodyRange(Zeile, 11).Value = .Range("I23").Value
tbl.DataBodyRange(Zeile, 12).Value = .Range("I25").Value
tbl.DataBodyRange(Zeile, 14).Value = .Range("I33").Value
tbl.DataBodyRange(Zeile, 16).Value = .Range("I35").Value
tbl.DataBodyRange(Zeile, 19).Value = .Range("I37").Value
tbl.DataBodyRange(Zeile, 23).Value = .Range("I50").Value
tbl.DataBodyRange(Zeile, 24).Value = .Range("I52").Value
tbl.DataBodyRange(Zeile, 25).Value = .Range("I54").Value
tbl.DataBodyRange(Zeile, 31).Value = .Range("I60").Value
tbl.DataBodyRange(Zeile, 32).Value = .Range("I62").Value
tbl.DataBodyRange(Zeile, 33).Value = .Range("I64").Value
tbl.DataBodyRange(Zeile, 34).Value = .Range("I66").Value
tbl.DataBodyRange(Zeile, 35).Value = .Range("I68").Value
tbl.DataBodyRange(Zeile, 36).Value = Date
End With
'Navigieren zu Tabellenblatt Datenbank
tb_Datenbank1.Select
ActiveWindow.ScrollRow = tbl.DataBodyRange(Zeile, 1).Row
tbl.DataBodyRange(Zeile, 1).Select
End Sub