Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Hyperlink-Aufruf von Beiträgen in ausgeblendeten Tabellen
#1
Hallo Freunde,

In einem Rezeptbuch habe ich im Tabellenblatt "Speiseplanübersicht" ein paar Einträge mittels Hyperlink auf weitere Tabellenblätter verlinkt. Erzeugt wurden diese mit dem Rechtsklick Hyperlink ==> Hyperlink einfügen.

Beispiel:

Das Wort Schweinerückensteak im Blatt Speiseplanübersicht ==> Link auf Tabellenblatt "Schwein" A1
Hähnchenschenkel in Chilimarinade ==> Link auf Tabellenblatt "Geflügel" A23
Rindergulasch nach ungarischem Originalrezept ==> Link auf Tabellenblatt "Rind" A100 usw.

In den verlinkten Tabellenblättern befinden sich entsprechende Rezepte. Soweit, so gut. Die Tabellenblätter mit den Rezepten (aktuell 5 - Tendenz steigend) habe ich ausgeblendet, dadurch komme ich jetzt mit dem Hyperlink nicht mehr an die Einträge. Gibt es hierfür eine Möglichkeit zu realisieren, dass ich die Rezepte auch im ausgeblendeten Zustand erreiche oder muss ich sie jedes Mal wieder einblenden?

Sollte für eine effektive Hilfe eine Musterdatei nötig sein, kann ich sie erst heute Abend einstellen.

Schon jetzt ein Dankeschön für eure Hilfe.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#2
Hallo,

ich habe mit VBA wenig am Hut - ich gehe mal davon aus, dass du noch effektivere Lösungen erhälst, aber so könnte es klappen:

Kopiere den folgenden Code in das erste Tabellenblatt:

Code:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'http://www.herber.de/forum/archiv/400to404/402782_per_Hyperlink_auf_ausgeblendetes_Blatt_springen.html
    Dim strAdr As String
    Dim strSht As String
    strAdr = Target.SubAddress
    strSht = Replace(Left(strAdr, Len(strAdr) - InStr(1, StrReverse(strAdr), "!")), "'", "")
    Sheets(strSht).Visible = xlSheetVisible
    Sheets(strSht).Activate
End Sub

Damit die einzelnen Tabellenblätter wieder ausgeblendet werden kopierst du in die Module der ausgeblendeten Tabellenblätter den folgenden Code:

Code:
Private Sub Worksheet_Deactivate()
Me.Visible = xlSheetVeryHidden
End Sub
Gruß
Peter
Antworten Top
#3
Hi Peter,

lieben Dank - das war die Lösung. Klappt alles so, wie ich es mir vorstelle.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#4
Hallo Günter,

ich poste jetzt trotzdem mal meinen Vorschlag.
Sämtlicher Code steht im Modul 'DieseArbeitsmappe':

Code:
'Modul DieseArbeitsmappe

Option Explicit

Private strStarter As String
Private strV As String

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  If strStarter = Sh.Name Then
    strStarter = ""
  Else
    If strV <> "" Then
      Sh.Visible = strV
      strV = ""
    End If
  End If
End Sub

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
  Dim strHLControl() As String
  strHLControl = Split(Target.SubAddress, "!")
  strStarter = ActiveSheet.Name
  With Worksheets(strHLControl(0))
    strV = .Visible
    .Visible = -1
    Application.Goto .Range(strHLControl(1)), True
  End With
End Sub

Gruß Uwe
Antworten Top
#5
Hi Uwe,

danke für deinen Lösungsvorschlag. Habe ihn sogleich getestet, allerdings folgenden Fehler erhalten:

1. Fehlermeldung

   

2. Debuggermarkierung

   

Und da ich VBA-technisch gesehen so gut wie keine Ahnung habe, weiß ich natürlich nicht, was nicht in Ordnung ist.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#6
Hallo,

das hilft dir jetzt zwar nichts - aber bei mir hat der Code ohne Fehlermeldung funktioniert.
Gruß
Peter
Antworten Top
#7
Hi Peter,

(17.05.2014, 18:54)Peter schrieb: Hallo,

das hilft dir jetzt zwar nichts - aber bei mir hat der Code ohne Fehlermeldung funktioniert.

stimmt - hilft nicht. *ganzbreitgrinsundwegduck* :D

Ne, im Ernst. Aufgrund deines Erfolgs habe ich nochmals alles gelöscht, neu reinkopiert und erneut getestet. Hätte ja sein können, dass beim Kopieren eventuell eine Zeile vergessen wurde. Aber auch bei diesem Versuch habe ich die vorhin beschriebenen Meldungen erhalten.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#8
Hallo Günter,

ich habe im Code von Uwe mal eine Fehlerbehandlung eingebaut. Könntest Du Sie mal ersetzen und uns die Daten der MsgBox mitteilen?

Code:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
  Dim strHLControl() As String
  strHLControl = Split(Target.SubAddress, "!")
  strStarter = ActiveSheet.Name
  On Error GoTo Fehlermeldung
  With Worksheets(strHLControl(0))
    strV = .Visible
    .Visible = -1
    Application.Goto .Range(strHLControl(1)), True
  End With
  Exit Sub
Fehlermeldung:
  MsgBox Worksheets(strcontrol(0)).Name & vbCr & Range(strHLControl(1)).Address
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#9
Hi Stefan,

das ist das Ergebnis:

   

Nach Wegklicken der Msg-Box wurde mir noch die Zeile "Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)" gelb unterlegt.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#10
Hallo Günter,

sorry, hatte die Variable falsch geschrieben :16:

Code:
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
  Dim strHLControl() As String
  strHLControl = Split(Target.SubAddress, "!")
  strStarter = ActiveSheet.Name
  On Error GoTo Fehlermeldung
  With Worksheets(strHLControl(0))
    strV = .Visible
    .Visible = -1
    Application.Goto .Range(strHLControl(1)), True
  End With
  Exit Sub
Fehlermeldung:
  MsgBox Worksheets(strHLControl(0)).Name & vbCr & Range(strHLControl(1)).Address
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste