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

Verweis ungültig obwohl Tabellenblat existiert

Forumthread: Verweis ungültig obwohl Tabellenblat existiert

Verweis ungültig obwohl Tabellenblat existiert
15.03.2003 18:46:32
Bjoern
Hallo ,

habe mit Hilfe einiger netter leute hier ein inhaltsverzeichnis mit Hyperlinks erstellt.
Es geht soweit alles die betreffenden Zellen werden auch als Hyperlink angezeigt , melden aber beim draufklicken "ungültiger Verweis" obwohl es die Blätter gibt.
Was mach ich falsch ???
Hier der VBA-Code dazu:

Sub Blattlist()
Dim wks As Worksheet
Dim i As Integer
Set wks = Worksheets("Inhaltsverzeichnis")
For i = 2 To Worksheets.Count
If Worksheets(i).Name <> wks.Name Then
wks.Cells(i, 1) = Worksheets(i).Name
wks.Cells(i, 2) = Worksheets(i).Range("A10")
wks.Cells(i, 3) = Worksheets(i).Range("A26")
wks.Cells(i, 4) = Worksheets(i).Range("A2")
wks.Hyperlinks.Add Anchor:=wks.Cells(i, 1), Address:="", SubAddress:= _
Worksheets(i).Name & "!A1"
End If
Next i
End Sub

Bjoern

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Verweis ungültig obwohl Tabellenblat existiert
15.03.2003 18:58:25
heinz

bei mir funktionierts

meine 4 Tabellen heißen:
Inhaltsverzeichnis
Tabelle1
Tabelle2
Tabelle3

und das makro schreibt (neben werten) in spalte a von "Inhaltsverzeichnis" die, bei funktionierenden, hyperlinks

gruß, heinz

Re: Verweis ungültig obwohl Tabellenblat existiert
15.03.2003 19:16:25
Bjoern

Habe den Fehler gefunden,
der Verweis ist dann ungültig wenn das Tabellenblatt im Namen eine Bindestrich hat , wie bei mir zum beispiel 999-03 oder 998-03.
Frage an die Spezialisten hier, gibts da eventuell auch eine Lösung ?

Anzeige
Re: Verweis ungültig obwohl Tabellenblat existiert
15.03.2003 21:19:21
Burckhard

hallo bjoern,
versuchs mal so:
lösche dein blatt "inhaltsverzeichnis" und lasse diesen code laufen. er erstellt ein blatt "inhaltsverzeichnis" vor deinem 1. blatt.

Sub Inhaltsverzeichnis()
Dim I%
Sheets.Add Before:=Sheets(1)
Sheets(1).Name = "Inhaltsverzeichnis"
For I = Worksheets.Count To 2 Step -1
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(I - 1, 1), _
Address:="", SubAddress:="'" & Worksheets(I).Name & "'!A" & I - 1, _
TextToDisplay:=Worksheets(I).Name
Next
Range("A1").Sort Key1:=Range("A1"), Order1:=xlAscending
End Sub

Anzeige
Fehlermeldung beim neustart
15.03.2003 23:18:05
Bjoern

Hallo Burckhard,

dein Code funktionert soweit , nur bei einer erneuten Aktuellisierung oder beim erneuten öffen kommt Fehler weil es das "Inhaltsverzeichnis" schon gibt.
ich will das aber nicht immer wieder vor den beenden löschen
Weißte du zufällig ein Rat ?

Re: Fehlermeldung beim neustart
15.03.2003 23:35:49
Burckhard

na dann,
auf ein neues.
Sub Inhaltsverzeichnis()
Dim I%
If Sheets(1).Name = "Inhaltsverzeichnis" Then GoTo Weiter
Sheets.Add Before:=Sheets(1)
Sheets(1).Name = "Inhaltsverzeichnis"
Weiter:
Range("a:a").ClearContents
For I = Worksheets.Count To 2 Step -1
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(I - 1, 1), _
Address:="", SubAddress:="'" & Worksheets(I).Name & "'!A" & I - 1, _
TextToDisplay:=Worksheets(I).Name
Next
Range("A1").Sort Key1:=Range("A1"), Order1:=xlAscending
End Sub

sollte so gehen
gruß b.

Anzeige
;
Anzeige

Infobox / Tutorial

Verweis ungültig trotz vorhandener Tabellenblätter beheben


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und erzeuge ein neues Tabellenblatt namens "Inhaltsverzeichnis".
  2. Füge den folgenden VBA-Code hinzu:
    Sub Inhaltsverzeichnis()
       Dim I%
       If Sheets(1).Name = "Inhaltsverzeichnis" Then GoTo Weiter
       Sheets.Add Before:=Sheets(1)
       Sheets(1).Name = "Inhaltsverzeichnis"
    Weiter:
       Range("A:A").ClearContents
       For I = Worksheets.Count To 2 Step -1
           ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(I - 1, 1), _
           Address:="", SubAddress:="'" & Worksheets(I).Name & "'!A" & I - 1, _
           TextToDisplay:=Worksheets(I).Name
       Next
       Range("A1").Sort Key1:=Range("A1"), Order1:=xlAscending
    End Sub
  3. Starte das Makro und überprüfe die Hyperlinks in der "Inhaltsverzeichnis" Tabelle.
  4. Teste die Links, um sicherzustellen, dass sie korrekt auf die jeweiligen Tabellenblätter verweisen.

Häufige Fehler und Lösungen

  • Ungültiger Verweis: Dieser Fehler tritt häufig auf, wenn der Name eines Tabellenblatts Sonderzeichen oder Bindestriche enthält. Stelle sicher, dass du den Namen des Blattes in einfache Anführungszeichen setzt:

    SubAddress:="'" & Worksheets(I).Name & "'!A1"
  • Automatisierungsfehler ungültige Vorreferenz: Wenn du diesen Fehler erhältst, überprüfe, ob das Zielblatt tatsächlich existiert. Ein Tipp ist, die Namen der Tabellenblätter auf Tippfehler zu überprüfen.

  • Ungültige Vorreferenz oder Referenz zu unkompiliertem Typ: Dies kann durch falsche Variablendeklarationen im VBA-Code verursacht werden. Stelle sicher, dass alle Variablen korrekt deklariert sind.


Alternative Methoden

Wenn du weiterhin Probleme mit Hyperlinks hast, kannst du auch die SVERWEIS-Funktion verwenden, um Daten aus anderen Tabellen zu ziehen. Beachte jedoch, dass dabei die Matrix ungültig sein kann, wenn die Daten nicht korrekt strukturiert sind.

  1. Daten in einem konsistenten Format anordnen.
  2. Verwende die SVERWEIS-Funktion:
    =SVERWEIS(A2;Tabelle1!A:B;2;FALSCH)

Praktische Beispiele

Stelle dir vor, du hast drei Tabellenblätter: "Tabelle1", "Tabelle2" und "Tabelle3". Hier ist ein Beispiel für den VBA-Code, um ein Inhaltsverzeichnis zu erstellen:

Sub Blattlist()
    Dim wks As Worksheet
    Dim i As Integer
    Set wks = Worksheets("Inhaltsverzeichnis")
    For i = 2 To Worksheets.Count
        If Worksheets(i).Name <> wks.Name Then
            wks.Cells(i, 1) = Worksheets(i).Name
            wks.Hyperlinks.Add Anchor:=wks.Cells(i, 1), Address:="", SubAddress:= _
            "'" & Worksheets(i).Name & "'!A1"
        End If
    Next i
End Sub

Tipps für Profis

  • Vermeide Sonderzeichen in den Tabellennamen, da sie oft zu einem VBA automatisierungsfehler ungültige Vorreferenz führen können.
  • Nutze die Fehlerbehandlung in VBA, um spezifische Fehler abzufangen und benutzerfreundliche Fehlermeldungen anzuzeigen:
    On Error Resume Next
    ' Dein Code hier
    If Err.Number <> 0 Then
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End If

FAQ: Häufige Fragen

1. Was bedeutet "ungültiger Zellbezug" bei SVERWEIS?
Dieser Fehler kann auftreten, wenn die Tabelle, auf die verwiesen wird, nicht existiert oder wenn der Zellbereich nicht korrekt definiert ist.

2. Wie kann ich verhindern, dass ich bei jeder Aktualisierung das Inhaltsverzeichnis neu erstellen muss?
Du kannst den Code so anpassen, dass er prüft, ob das Inhaltsverzeichnis bereits existiert, bevor es erstellt wird. Nutze dazu eine If-Bedingung im VBA-Code.

3. Was bedeutet "automatisierungsfehler ungültige Vorreferenz"?
Dieser Fehler tritt auf, wenn ein Verweis auf ein Objekt oder eine Methode in VBA nicht korrekt ist, oft verursacht durch falsche Namen oder Daten.

4. Welche Excel-Version benötige ich für die VBA-Codes?
Die meisten der oben genannten VBA-Codes sollten in Excel 2010 und späteren Versionen funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige