Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Laufzeitfehler 91 in Range/Find Prozedur
06.07.2022 12:41:59 Lee
NotSolved
06.07.2022 12:45:33 Gast71608
NotSolved
06.07.2022 13:02:54 Mase
NotSolved
06.07.2022 14:22:47 Gast76562
NotSolved

Ansicht des Beitrags:
Von:
Lee
Datum:
06.07.2022 12:41:59
Views:
1130
Rating: Antwort:
  Ja
Thema:
VBA Laufzeitfehler 91 in Range/Find Prozedur

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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
             
            <span style="background-color:#f1c40f">Zeile_1 = Range("Tabelle1[Projektnummer]").Find(What:=tb_Eingabeformular.Range("D12").Value, LookIn:=xlValues, LookAt:=xlWhole).Row - tbl.HeaderRowRange.Row</span>
          
    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

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Laufzeitfehler 91 in Range/Find Prozedur
06.07.2022 12:41:59 Lee
NotSolved
06.07.2022 12:45:33 Gast71608
NotSolved
06.07.2022 13:02:54 Mase
NotSolved
06.07.2022 14:22:47 Gast76562
NotSolved