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-ID: 3112176740

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

rubberman
Lösung rubberman 24.12.2023 um 16:59:50 Uhr
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
mark47
Lösung mark47 25.12.2023 um 10:36:43 Uhr
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
rubberman
Lösung rubberman 25.12.2023 um 11:08:12 Uhr
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
mark47
Lösung mark47 25.12.2023 um 12:00:36 Uhr
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