Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler '70' Zugriff verweigert

Laufzeitfehler '70' Zugriff verweigert
05.11.2020 09:53:31
Tobi
Guten Morgen Zusammen,
ich arbeite an einer Datenbank in die Mitarbeiter Projekterfahrungen eintragen können. Jeder beliebige Mitarbeiter wird bei der Eintragung von Formular zu Formular geführt. Ein paar haben aber die Möglichkeit dies über eine schnelle Eintragung durchzuführen. Das hat alles auch bestens funktioniert. Bis gestern.
Nun funktioniert die schnelle Eintragung nichtmehr. Hier kommt bei Eintragung.Show der Laufzeitfehler 70 Zugriff verweigert. Vorher hat alles bestens funktioniert.
Könnte es daran liegen das ich ein Dashboard hinzugefügt habe?
Der Code dazu sieht so aus:

Private Sub Schnelle_Eintragung_Click()
'Wenn nichts im Feld der Projektnummer steht, dann öffne eine TextBox mit Inhalt "Das Feld darf  _
_
_
nicht leer sein"
If TextBox1.Text = "" Then
MsgBox ("Das Feld darf nicht leer sein")
Else
'Wenn die Projektnummer eingetragen wurde, dann:
'Variable deklarieren
Dim erste_freie_Zeile As Integer
'erste freie Zeile in Blatt "Projekt Erfahrungen" ermitteln
'und in Variable "erste_freie_Zeile" schreiben
erste_freie_Zeile = Sheets("Projekt Erfahrungen").Range("A65536").End(xlUp).Offset(1, 0) _
_
_
.Row
'In Blatt "Projekt Erfahrungen"
'Spalte A, erste freie Zeile die Projekt Nr übertragen und die Spalte "Zeile" aufüllen mit   _
_
_
Formel
Sheets("Projekt Erfahrungen").Cells(erste_freie_Zeile, "B") = Format(TextBox1.Text)
'Füge die Laufende Nummer in die Tabelle ein
Sheets("Projekt Erfahrungen").Cells(erste_freie_Zeile, "A").FormulaLocal = "=ZEILE()+1"
'verberge das Eingabefeld
ProjektNr.Hide
'Zeige das Userform des Bypasses an
Eintragung.Show
End If
End Sub

Ich danke euch für eure Hilfe
MfG
Tobi
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler '70' Zugriff verweigert
05.11.2020 10:21:40
Nepumuk
Hallo Tobi,
wie sollen wir das wissen?
Im VBA-Editor Extras - Optionen - Allgemein - Unterbrechen bei Fehlern - In Klassenmodul.
Damit bleibt der Debugger bei der fehlerauslösenden Zeile stehen.
Gruß
Nepumuk
AW: Laufzeitfehler '70' Zugriff verweigert
05.11.2020 10:24:32
Tobi
Hallo Nepumuk,
sorry habe das vergessen. Die Fehlerauslösende Zeile ist die Zeile "Eintragung.Show"
MFG
Tobi
Anzeige
AW: Laufzeitfehler '70' Zugriff verweigert
05.11.2020 10:28:27
Nepumuk
Hallo Tobi,
nein, das ist nicht die fehlerauslösende Zeile. Die befindet sich im Activate- oder im Initialize-Event des UserForms. Also mach das so wie ich geschrieben habe und löse den Fehler aus, dann siehst du wo er herkommt.
Gruß
Nepumuk
AW: Laufzeitfehler '70' Zugriff verweigert
05.11.2020 10:35:10
Tobi
Hallo Mepumuk,
Vielen Vielen Dank!!!
Der Fehler lag darin das in einer ComboBox. Da wäre ich nie drauf gekommen
Grüße Tobias
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler '70': Zugriff verweigert in Excel VBA beheben


Schritt-für-Schritt-Anleitung

  1. Fehlermeldung verstehen: Der Laufzeitfehler '70: Zugriff verweigert' tritt häufig auf, wenn VBA versucht, auf ein Objekt zuzugreifen, das nicht verfügbar oder nicht erlaubt ist. Dies kann bei UserForms und Steuerelementen wie TextBoxen und ComboBoxen passieren.

  2. VBA-Editor öffnen: Gehe zu „Entwicklertools“ und klicke auf „Visual Basic“.

  3. Fehlerauslösende Zeile finden: Aktiviere die Debugging-Option unter Extras > Optionen > Allgemein > Unterbrechen bei Fehlern > In Klassenmodul. Dies hilft dir, die genaue Zeile zu identifizieren, die den Fehler auslöst.

  4. Code überprüfen: Überprüfe die Zeile, die den Fehler auslöst. Oft sind es Activate oder Initialize Events von UserForms, die Probleme verursachen können.

  5. Kontrolliere Steuerelemente: Achte darauf, dass alle Steuerelemente, wie ComboBoxen, die im Code verwendet werden, korrekt initialisiert sind und keine ungültigen Werte enthalten.

  6. Korrektur vornehmen: Basierend auf den gefundenen Fehlern, passe deinen Code an. Oft kann das Entfernen oder das Korrigieren von fehlerhaften Steuerelementen das Problem lösen.


Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler 70 bei Eintragung.Show

    • Lösung: Überprüfe, ob alle Steuerelemente auf dem UserForm korrekt sind. Achte insbesondere auf ComboBoxen, da Fehler dort häufig passieren.
  • Fehler: Zugriff verweigert bei spezifischen Objekten

    • Lösung: Stelle sicher, dass du die richtigen Berechtigungen hast und dass das Objekt existiert. Manchmal kann ein fehlendes Steuerelement diesen Fehler hervorrufen.

Alternative Methoden

  • Verwendung von On Error: Implementiere Fehlerbehandlung in deinem Code, um den Prozess zu steuern, falls ein Laufzeitfehler auftritt:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    
    ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Debugging mit Debug.Print: Verwende Debug.Print, um den Status und die Werte von Variablen während der Ausführung zu überprüfen, um den Fehler besser zu lokalisieren.


Praktische Beispiele

Hier ist ein Beispiel, wie du eine ComboBox korrekt initialisieren kannst, um den Laufzeitfehler 70 zu vermeiden:

Private Sub UserForm_Initialize()
    With ComboBox1
        .AddItem "Option 1"
        .AddItem "Option 2"
    End With
End Sub

Vergewissere dich, dass die ComboBox vor der Verwendung gefüllt ist, um Fehler zu vermeiden.


Tipps für Profis

  • Regelmäßige Tests: Führe regelmäßig Tests in deinem VBA-Code durch, um sicherzustellen, dass alle Elemente korrekt funktionieren und keine Laufzeitfehler auftreten.

  • Modularer Code: Halte deinen Code modular, indem du Funktionen für wiederkehrende Aufgaben erstellst. Dies erleichtert das Debugging und die Wartung.

  • Fehlerprotokollierung: Implementiere ein einfaches Fehlerprotokollierungssystem, um alle aufgetretenen Fehler zu dokumentieren. Das hilft bei der Analyse von Problemen.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler '70'? Der Laufzeitfehler '70: Zugriff verweigert' tritt auf, wenn VBA versucht, auf ein Objekt zuzugreifen, das nicht verfügbar oder nicht erlaubt ist.

2. Wie kann ich den Fehler beheben? Überprüfe die Zeile, die den Fehler auslöst, stelle sicher, dass alle Steuerelemente korrekt initialisiert sind und dass du die richtigen Berechtigungen hast.

3. Gibt es spezielle Einstellungen im VBA-Editor? Ja, aktiviere die Option unter Extras > Optionen > Allgemein > Unterbrechen bei Fehlern > In Klassenmodul, um den Debugger bei der fehlerauslösenden Zeile zu stoppen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige