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

Run-time error '-2147319767 (80028029)'

Forumthread: Run-time error '-2147319767 (80028029)'

Run-time error '-2147319767 (80028029)'
20.05.2022 14:10:20
Julia
Liebe VBA-Cracks,
da mir das Forum schon einmal sehr bei einer vertrackten Situation geholfen hat, versuche ich nochmals mein Glück.
Bei der Nutzung einer Datei habe ich grosse Probleme.
Es kommt zu o.g. Fehler:
Run-time error '-2147319767 (80028029)'
Automation error
Invalid forward reference, or reference to uncompiled type

Wenn ich die Datei öffne, habe ich erst einmal einen Disclaimer zu lesen und zu akzeptieren.
Das geschieht über das Drücken eines "Accept"-Buttons (Macro hinterlegt).
Ich kopiere anbei die drei Codes, die von Interesse sind beim Öffnen:

Sub auto_open()
Sheets(1).Select
Application.ScreenUpdating = False
Call Invisible
End Sub

Sub Invisible()
Application.ScreenUpdating = False
For Each Sheet In Sheets
 Sheet.Visible = xlVeryHidden
Sheets(1).Visible = True
Sheets(1).Select
Next
With ActiveWindow
.DisplayHeadings = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
End With

Sub D_Accept()
Application.ScreenUpdating = False
TopLeft = "A1"
On Error Resume Next
For Each Sheet In Sheets
Sheet.Visible = True
Application.Goto Sheet.Range(TopLeft), Scroll:=True
Next
Sheets("Cockpit").Select
With ActiveWindow
.DisplayHeadings = True
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
End With
With Application
.DisplayFormulaBar = True
.DisplayStatusBar = True
End With
ActiveWindow.DisplayHeadings = False
End Sub
Wenn ich die Fehlermeldung des Laufzeitfehlers mit "Debug" quittiere, spring mir der "Debugger" im o.g. Macro Invisible an die Fett markierte Stelle (also Sheet.Visible = xlVeryHidden)
Wenn ich dann 3-4 versuche, den Debugger zu beenden, kann ich in die Excel-Arbeitsmappe zurückkehren, in der ein paar Arbeitsblätter ausgeblendet sind.
Wenn ich dann den "Accept"-Button drücke (und somit o.g. Macro D_Accept auslöse), sind die Arbeitsblätter eingeblendet.
Wie schaffe ich es, dass sich die Datei wieder wie gewohnt öffnen lässt, ich auf dem Cover-Sheet lande und hier per Accept-Button quittieren kann, dass ich weiterarbeiten möchte?
Habt Ihr bitte ein paar gute Tipps für mich?
Leider kann ich die Mappe nicht anhängen, da sie zu viele sensible Daten enthält. :-(
Für Eure Hilfe wäre ich Euch sehr dankbar!
Beste Grüße,
Julia
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Run-time error '-2147319767 (80028029)'
20.05.2022 14:24:31
Oberschlumpf
hi Julia,
hab leider nur wenig Zeit, deswg alles in kurz:
änder diesen Code...

For Each Sheet In Sheets
Sheet.Visible = xlVeryHidden
Sheets(1).Visible = True
Sheets(1).Select
Next
...um in..

Sheets(1).Visible = True
For Each Sheet In Sheets
If Sheet.Name  Sheets(1).Name then
Sheet.Visible = xlVeryHidden
End If
Next
Wenn das nich hilft, brauch zumindest ich doch ne Bsp-Datei - aber DAS schaffst du!
Erstell einfach eine - neue Datei!
Füg dieser ein paar Blätter hinzu
In die Blätter in den richtigen Zellen n paar Bsp-Daten - speichern - hier uoloaden - fertig!
Hilfts?
Ciao
Thorsten
Anzeige
AW: Run-time error '-2147319767 (80028029)'
20.05.2022 15:14:18
GerdL
Hallo Julia!

Sub Invisible()
Dim objSheet As Object
Application.ScreenUpdating = False
Sheets(1).Visble = xlSheetVisible
For Each objSheet In Sheets
If objSheet.Name  Sheets(1).Name Then objSheet.Visible = xlVeryHidden
Next
With ActiveWindow
.DisplayHeadings = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
.DisplayWorkbookTabs = False
End With
End Sub
Wo deklarierst du deine Variablen?
Am D_Accept musst du ebenfalls noch entsprechend arbeiten.
Ob dies alleine den harten Fehler tilgt, muss man abwarten.
Gruß Gerd
Anzeige
AW: Run-time error '-2147319767 (80028029)'
20.05.2022 18:15:02
onur
Kann es sein, dass die Datei beim Öffnen nur EIN sichtbares Blatt hat?
AW: Run-time error '-2147319767 (80028029)'
23.05.2022 09:43:43
Julia
Hallo zusammen,
vielen Dank für Eure Rückmeldungen!!!
Leider hat bisher kein Vorschlag zum Ergebnis geführt.
Es ist tatsächlich so, wie onur schreibt, dass eigentlich nur ein Blatt zu sehen sein soll (das mit dem "Accept"-Button), und wenn man hier quittiert, hat man Zugriff auf die restliche Arbeitsmappe. Es handelt sich dabei um das Arbeitsblatt "Cover"
Ich selbst habe die Mappe nicht entwickelt sondern arbeite nun damit.
Was mir noch aufgefallen ist: Das Arbeitsblatt "Cover" (also das mit dem "Accept"-Button, das als erstes zu sehen sein soll) ist als "DevCoverSheet" bezeichnet. Es ist also nicht das "Sheet1" (siehe auch Bild unten). Kann man hier vielleicht ansetzen?
Der Tab des Arbeitsblattes "Cover" muss auch immer ganz links sein; hatte in der Vergangenheit schon einmal das Problem, dass - wenn links vom Arbeitsblatt "Cover" ein anderes Arbeitsblatt angeordnet wird - es problematisch beim Öffnen wird und dann nicht mehr das "Cover"-Sheet, sondern das andere angezeigt wird....
Userbild
Kenne mich leider kaum bis gar nicht aus und muss es leider irgendwie gängig kriegen...
Wäre Euch allen dankbar, wenn Ihr einen Versuch wagen würdet.
Viele Grüße,
Julia
Anzeige
AW: Run-time error '-2147319767 (80028029)'
23.05.2022 09:49:05
Oberschlumpf
Hi Julia,
nur Bilder helfen meist leider nicht so viel bei Excel-Problemen.
Kannst du deine Datei bitte als Bsp-Datei per Upload hier zeigen?
Der Gesamtaufbau der Datei sollte erhalten bleiben, damit wir deinen Beschreibungen "folgen" können, aber die Realdaten kannst du gegen Bsp-Daten austauschen.
Ciao
Thorsten
Anzeige
AW: Run-time error '-2147319767 (80028029)'
23.05.2022 10:46:40
Julia
Hallo Thorsten,
danke für Deine Rückmeldung.
Ich habe jetzt mal viele Blätter der Datei rausgeworfen und ansonsten den Inhalt der Datei gelöscht, so dass das Problem weiterhin besteht.
Die Datei steht zum Download bereit.
https://www.herber.de/bbs/user/153217.xlsm
Das Passwort lautet Herber
Ich wäre dankbar, wenn Du oder andere Forumsteilnehmende einen Lösungsansatz hätten.
Beste Grüße,
Julia
Anzeige
AW: Run-time error '-2147319767 (80028029)'
24.05.2022 08:46:14
Oberschlumpf
Hi Julia,
mit diesem Code funktioniert dein Invisible-Makro

For Each lshAll In Sheets
If lshAll.Name  "Cover" Then 'Name anpassen!
lshAll.Visible = xlVeryHidden
Else
lshAll.Visible = True
End If
Next
Ciao
Thorsten
AW: Run-time error '-2147319767 (80028029)'
23.05.2022 10:50:33
onur
Hab ich mir schon gedacht. Wenn beim Start nur ein Blatt zu sehen ist und du versuchst, dieses auch noch auszublenden, geht das natürlich in die Hose.
Anzeige
AW: Run-time error '-2147319767 (80028029)'
23.05.2022 12:43:17
onur

  For Each Sheet In Sheets
If sheet.name”Tabelle1” then ‘Name anpassen!
Sheet.Visible = xlVeryHidden
Else
Sheet.Visible = True
End if
Next

AW: Run-time error '-2147319767 (80028029)'
23.05.2022 13:09:57
Julia
Hallo Onur,
danke für Deinen Vorschlag.
Habe es ausprobiert und „Tabelle 1“ mit dem Namen des Tabellenblattes ersetzt, das nicht ausgeblendet werden soll (hier: „Cover“).
Das hat leider nicht funktioniert.
Wenn Du eine andere Idee hast, freue ich mich!
Viele Grüße,
Julia
Anzeige
AW: Run-time error '-2147319767 (80028029)'
23.05.2022 15:08:51
onur
Nimm mal statt sheet was anderes als Variablen-Name, kann sein, dass sich das irgendwie beisst, weils es Sheet auch in VBA gibt.
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Umgang mit dem Run-time Error '-2147319767 (80028029)' in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Fehler identifizieren: Wenn du beim Öffnen einer Excel-Datei die Fehlermeldung "Run-time error '-2147319767 (80028029)'" erhältst, deutet dies oft auf ein Problem mit Makros hin, insbesondere bei der Sichtbarkeit von Arbeitsblättern.

  2. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Problematischen Code finden: Suche nach dem Makro Invisible(), das möglicherweise den Fehler verursacht. Achte auf die Zeile, in der die Sichtbarkeit der Blätter geändert wird:

    For Each Sheet In Sheets
       Sheet.Visible = xlVeryHidden
    Next
  4. Code anpassen: Ersetze die obige Schleife durch:

    Sheets(1).Visible = True
    For Each Sheet In Sheets
       If Sheet.Name <> Sheets(1).Name Then
           Sheet.Visible = xlVeryHidden
       End If
    Next
  5. Variablen deklarieren: Stelle sicher, dass alle Variablen in deinem Makro deklariert sind, um die Wahrscheinlichkeit von "invalid forward reference vba" zu verringern.

  6. Datei speichern und testen: Speichere die Änderungen und teste die Datei erneut, um zu sehen, ob der Fehler weiterhin auftritt.


Häufige Fehler und Lösungen

  • Fehler: invalid forward reference: Dies kann vorkommen, wenn du versuchst, auf ein nicht deklariertes oder nicht kompiliertes Objekt zuzugreifen. Überprüfe alle Variablen und stelle sicher, dass sie korrekt deklariert sind.

  • Fehler: run time error 2147319767 (80028029): Wenn dieser Fehler auftritt, prüfe, ob du in deinem Code nur ein sichtbares Blatt hast, bevor du versuchst, es auszublenden.

  • Fehler: run time error 13 type mismatch: Dieser Fehler tritt auf, wenn du versuchst, einen Wert einem falschen Datentyp zuzuweisen. Überprüfe deine Zuweisungen und Variablen.


Alternative Methoden

  • Verwendung von xlSheetVisible: Anstelle von xlVeryHidden kannst du xlSheetVisible verwenden, um sicherzustellen, dass das Blatt sichtbar bleibt. Dies kann helfen, den Laufzeitfehler zu vermeiden.

  • Untersuchen der Blätter: Stelle sicher, dass du immer das richtige Blatt bearbeitest. Vermeide die Verwendung von generischen Namen wie Sheet. Verwende spezifische Namen, um Verwirrung zu vermeiden.

For Each objSheet In ThisWorkbook.Worksheets
    If objSheet.Name <> "Cover" Then
        objSheet.Visible = xlVeryHidden
    End If
Next

Praktische Beispiele

Hier sind einige praktische Codebeispiele zur Lösung des Fehlers:

  1. Makro für das Öffnen der Datei:

    Sub auto_open()
       Sheets("Cover").Visible = True
       Sheets("Cover").Select
    End Sub
  2. Verbesserte Invisible()-Funktion:

    Sub Invisible()
       Dim objSheet As Worksheet
       Application.ScreenUpdating = False
       For Each objSheet In ThisWorkbook.Worksheets
           If objSheet.Name <> "Cover" Then
               objSheet.Visible = xlVeryHidden
           End If
       Next
       Application.ScreenUpdating = True
    End Sub

Tipps für Profis

  • Vermeide die Verwendung von reservierten Wörtern: Benutze nicht Sheet als Variablennamen, da dies zu Verwirrung führen kann.

  • Makros debuggen: Nutze den Debugger, um herauszufinden, wo genau der Fehler auftritt. Setze Haltepunkte und überprüfe die Variablenwerte.

  • Regelmäßige Sicherung: Mache regelmäßige Backups deiner Excel-Dateien, um Datenverlust zu vermeiden, falls etwas schiefgeht.


FAQ: Häufige Fragen

1. Was bedeutet der Fehler '80028029'? Der Fehler '80028029' ist ein Automatisierungsfehler, der häufig auftritt, wenn ein Makro auf ein nicht deklariertes oder nicht kompiliertes Objekt zugreift.

2. Wie kann ich den Laufzeitfehler 2147319767 beheben? Überprüfe den Code auf Sichtbarkeitsprobleme von Arbeitsblättern und stelle sicher, dass alle Variablen korrekt deklariert sind.

3. Was kann ich tun, wenn der Fehler weiterhin auftritt? Wenn der Fehler weiterhin auftritt, versuche, die Datei in einer neuen Excel-Instanz zu öffnen oder den Code Schritt für Schritt zu debuggen, um die genaue Fehlerstelle zu finden.

4. Wie verhindere ich, dass der Fehler bei zukünftigen Projekten auftritt? Achte darauf, alle Variablen korrekt zu deklarieren und vermeide die Verwendung von reservierten Namen in VBA.

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