Hallo zusammen, 
auch nach vielem Googlen und umschreiben und umdeklarieren und Error abfragen etc. komme ich nicht zum gewünschten Ziel. Ich habe eine Datenbank für Aufgaben erstellt in denen man Aufgaben mit folgenden Informationen füttern kann: 
  
  
  
  
Über drei Buttons hinter denen Makros stehen kann man Aufgaben neu erstellen, bestehende Aufgaben bearbeiten oder Aufgaben löschen. 
  
Mein problem entsteht bei den projektnummer, welche bei uns aus 4 Ziffern bestehen. Diese habe ich mit dem SOnderformat #### so formatiert, das eine 4 oder eine 50 als 0004 oder 0050 angezeigt wird. Wenn ich nun eine Aufgabe bearbeiten möchte mit einer Projektnummer mit eben einer 50 oder 4 bearbeiten möchte und diese dann speichere entsteht der Laufzeitfehler 91, da anscheinend bei der range und find prozedur die Zeile = 0 ist. Diese ist aber streng genommen nicht 0. Der Code sieht wie folgt aus. 
Sub AufgabeChange_EingabeDB()
Call DB_unprotected
Call Eingabe_unprotected
'Tabelle einlesen
Dim tbl As ListObject
Set tbl = tb_Datenbank.ListObjects(1)
Dim Zeile_1 As Long
'Prüfen ob Lesen oder bearbeiten
    If tb_Eingabeformular.Shapes.Range(Array("txt_anlegen", "img_anlegen")).Visible = True Then
        'Aufgabe erstellen
        
            'Zeile hinzufügen
                tbl.ListRows.Add
                
                'Zeile in Variable speichern
                Zeile_1 = tbl.DataBodyRange.Rows.Count
               
       
    'Aufgabe bearbeiten
    Else
            
            Zeile_1 = Range("Tabelle1[Projektnummer]").Find(What:=tb_Eingabeformular.Range("D12").Value, LookIn:=xlValues, LookAt:=xlWhole).Row - tbl.HeaderRowRange.Row
         
    End If
    
    'Datenbank füllen
    
        With tb_Eingabeformular
        
            tbl.DataBodyRange(Zeile_1, 1).Value = .Range("D12")           'Einfügen der Projektnummer in die Datenbank
            tbl.DataBodyRange(Zeile_1, 2).Value = .Range("E18")           'Einfügen der Projektnamens in die Datenbank
            tbl.DataBodyRange(Zeile_1, 3).Value = .Range("E20")           'Einfügen der Aufgabensteller in die Datenbank
            tbl.DataBodyRange(Zeile_1, 4).Value = .Range("E22")           'Einfügen der Tätigkeit in die Datenbank
            tbl.DataBodyRange(Zeile_1, 5).Value = .Range("L18")           'Einfügen des bevorzugten Bearbeiters in die Datenbank
            tbl.DataBodyRange(Zeile_1, 6).Value = .Range("L20")           'Einfügen der geschätzten Bearbeitungszeit in die Datenbank
            tbl.DataBodyRange(Zeile_1, 7).Value = .Range("L22")           'Einfügen der Fälligkeit in die Datenbank
            
            
        End With
        
Call DB_protect
Call Eingabe_protect
        
        'Navigieren zu dem neuen Eintrag in der Datenbank
        
        tb_Datenbank.Select
        ActiveWindow.ScrollRow = tbl.DataBodyRange(Zeile_1, 1).Row
        tbl.DataBodyRange(Zeile_1, 1).Select
        
        
    
End Sub
In der organgen Zeile entsteht der Fehler. Ich verstehe nur nicht genau wieso er entsteht. Ich vertsehe, dass eine deklaration fehlt. Aber Zeile_1 habe ich am Anfang deklariert udn auch wenn ich versuche über set ein Objekt zu erstellen, erzeuge ich nur andere Fehler. Vielleicht könnt ihr mir auf die Sprünge helfen.  
  
Vielen Dank fürs Lesen und einen schönen Tag noch, 
  
Lee 
  
  
     |