mark47
Goto Top

Das angegebene Object konnte nicht gefunden werden

Hallo, erstmal wünsche ich frohe Feiertage!
Nun zu meinem Problem.
Ich suche Unterstützung, um einen VBA Code erfolgreich zu starten. Wenn ich starte, wird der Fehler in folgender
Zeile mit dem Hinweis : Das angegebene Objekt konnte nicht gefunden werden. "Cells(iZeile, i) = Controls("txtPosNr" & i)" angezeigt.

Kann mir hierbei jemand aktive Unterstützung anbieten?


Private Sub cmdNew_Click()

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    Dim eintrag     As Long
    Dim txtPosNr    As String
    Dim iZeile      As Long
    Dim i           As Integer
    Dim seekArb       As Range  '  Integer  
    Dim ufelemente() As Variant  ' Integer  
    Dim indextb()   As Range  ' Varinat  
    Dim Antwort     As Long
    Dim txtnummer   As Long
    Dim wsat        As Worksheet
    Dim mvntWert      As Variant
    Dim rngRow        As Range
    Dim lZeile        As Long
    Dim neusatz       As Boolean

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ufelemente = Array("txtPosNr", "txtnummer", "txtAnrede", "txtNachname", "txtVorname", "txtStrasse", "txtPlz", "txtWohnort", "txtTelefon", _  
    "txtGemarkung", "txtJagdbezirk", "txtFlurstueck", "txtFlurstueckNr", "txtFlaeche", _  
    "txtGemarkung2", "txtJagdbezirk2", "txtFlurstueck2", "txtFlurstueckNr2", "txtFlaeche2", _  
    "txtGemarkung3", "txtJagdbezirk3", "txtFlurstueck3", "txtFlurstueckNr3", "txtFlaeche3", _  
    "txtGemarkung4", "txtJagdbezirk4", "txtFlurstueck4", "txtFlurstueckNr4", "TxTFlaeche4", _  
    "TxTZahlung")  

''''''     lZeile = wsat.Cells(Rows.Count, 1).End(xlUp).Row + 1  

''''''        Dim iZeile&, i&  

''''''          iZeile = lstData.List(lstData.ListIndex = -1) '   , 0)  

        With Tabelle1.ListObjects(1).DataBodyRange
        For i = 1 To 31
           Cells(iZeile, i) = Controls("txtPosNr" & i)  
        Next i
    End With


    eintrag = 0
    If seekArb(txtPosNr, rngRow) Then
        Else
            Exit Sub
    End If
    For i = 0 To UBound(ufelemente)
        If Trim(Me.Controls(ufelemente(i))) <> Trim(rngRow.Cells(, indextb(i)).Value) Then
            mvntWert = Trim(rngRow.Cells(, indextb(i)).Value)
            eintrag = eintrag + 1
        End If
    Next i
    If eintrag > 0 Then cmdSave_Click
    Antwort = MsgBox("Wollen Sie einen neuen Datensatz anlegen?", 4, "Neuer Datensatz")  
    If Antwort = 6 Then
        lstData.ListIndex = lstData.ListCount - 1
        eintrag = 0
        For i = 2 To UBound(ufelemente)
            If Trim(Me.Controls(ufelemente(i))) <> "" Then eintrag = eintrag + 1  
        Next i
        If txtPosNr = lZeile - 1 And txtnummer = "NeuMtgld" And eintrag = 0 Then  
            MsgBox "Es liegt noch ein unbearbeiter neuer Datensatz vor!" & vbNewLine & "Es wird keine neuer Satz erstellt!", , "Abbruch Datensatzerstellung"  
            Exit Sub
        End If
        neusatz = True
        wsat.Cells(lZeile, 1) = CStr(lZeile)
        wsat.Cells(lZeile, 2) = CStr("NeuMtgld")  
        wsat.Cells(lZeile, 1) = WorksheetFunction.Max(wsat.Columns(1)) - 1
        lstData.AddItem
        lstData.List(lstData.ListCount - 1, 1) = CStr("NR" & lZeile)  
        lstData.ListIndex = lstData.ListCount - 1
        neusatz = False
    End If
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Call Calculate
End Sub

Content-Key: 3112176740

Url: https://administrator.de/contentid/3112176740

Printed on: April 28, 2024 at 11:04 o'clock

Member: rubberman
Solution rubberman Dec 24, 2023 at 15:59:50 (UTC)
Goto Top
Hallo.

With Tabelle1.ListObjects(1).DataBodyRange

Auf was im darauffolgenden Code soll sich das DataBodyRange Objekt beziehen? Keines der dort angegebenen Objekte hat einen vorangestellten Punkt.

Grüße
Steffen
Member: mark47
Solution mark47 Dec 25, 2023 at 09:36:43 (UTC)
Goto Top
Hallo, wünsche frohe Weihnachten. Die "txtPosNr" sollte angesprochen werden. Aber das geht auch mit dem Punkt vorangestellt nicht. Gruß


        With Tabelle1.ListObjects(1).DataBodyRange
        For i = 1 To 31
            .Cells(iZeile, i) = Controls("txtPosNr" & i)  
        Next i
    End With
Member: rubberman
Solution rubberman Dec 25, 2023 at 10:08:12 (UTC)
Goto Top
Frohes Fest ebenso.
Ist schwierig herauszufinden, wenn man den Rest nicht sieht. Arbeite dich vorwärts, um zu sehen, auf was sich die Fehlermeldung genau bezieht. Bspw.
.Cells(iZeile, i) = 12345
einfach um zu checken ob es die Zellen sind die nicht referenziert werden können, oder deine Controls Collection.

Steffen
Member: mark47
Solution mark47 Dec 25, 2023 at 11:00:36 (UTC)
Goto Top
Danke, die Datei hochladen ist hier ja nicht möglich. Wenn ich die Zeile verändere, kommt folgender neuer Fehler in Zeile:
Objekt oder With- Blockvariable nicht festgelegt.

    If seekArb(txtPosNr, rngRow) Then
auf