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

Hyperlink für Aktive Zelle

Forumthread: Hyperlink für Aktive Zelle

Hyperlink für Aktive Zelle
21.11.2016 21:26:41
Vent
Hallo,
ich möchte ein Hyperlink von der Aktiven Zelle in eine definierte (Festgelegte)Zelle als VBA. Meine Tabelle hat eine Menge Namen Daten und ich möchte in der letzten Spalte ein Link zum nächsten Eintrag mit gleichem Namen (in Spalte B). Ich bin Betriebsrat und es geht um Verlängerungen.
es wäre schön wenn mir jemand helfen kann.
PS.: Wie kann man VBA Befehle Üben und gleichzeitig sehen was passiert.
Danke
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink für Aktive Zelle
22.11.2016 01:52:08
fcs
Hallo Vent,
ich würde hier das Tabellenblatt nicht mit Hyperlinks zupflastern sondern dynamisch nach dem Namen weiter unten in der Liste in Spalte B suchen.
z.B. nach Klick per rechter Maustaste auf den Namen in Spalte B. Nachfolgend ein entsprechendes Ereignis-Makro, das du im VBA-Editor unter dem Tabellenblatt mit der Liste einfügen musst.
PS.: Wie kann man VBA Befehle Üben und gleichzeitig sehen was passiert.
Die normalen Makros kann man im Schrittmodus starten via Menü Ansicht--&gtMakros (nächster Befehl dann immer mit F8). Bei verkleinertem VBA-Editor-Fenster sieht man dann was ggf. in den Tabellen passiert.
Du kannst im VBA-Editor auch Haltepunkte in Makros setzen, um dann ab der Code-Zeile mit F8 zeilenweise das Makro weiter abzuarbeiten.
Hast du Variablen deklariert, dann kannst du im VBA-Edior via Menü "Ansicht" das Lokal-Fenster einblenden und im Schrittmodus die Werte der Variablen verfolgen. Außerdem kannst du via "Debuggen" Überwachungen hinzufügen, um die Werte von Ausdrücken oder Variablen zu verfolgen und ggf. auch das Makro anhalten.
LG
Franz
'Ereignismakro unter dem Tabellenblatt mit der Liste
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim varName
Dim ZeileL As Long, Zeile As Long
Select Case Target.Column
Case 2 'spalte B
Select Case Target.Row
Case Is >= 3  '3 = 1. Zeile mit einem Namen
varName = Target.Value
If varName  "" Then
Cancel = True 'verhindert, dass Rechte-Maus-Menü eingeblendet wird
ZeileL = Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile mit Wert in  _
Spalte B
Zeile = Target.Row
Do
Zeile = Zeile + 1
If Zeile > ZeileL Then
MsgBox "Keine weiteren Einträge zu dem Namen: " & varName
Exit Do
End If
If Cells(Zeile, Target.Column).Value = varName Then
Cells(Zeile, Target.Column).Select
ActiveWindow.ScrollRow = Zeile - 2
Exit Do
End If
Loop
End If
End Select
End Select
End Sub

Anzeige
AW: Hyperlink für Aktive Zelle
22.11.2016 19:00:19
Vent
Hallo Franz,
sorry ich natürlich Horst.
Super Vorschlag. Habe deinen Code gleich ausprobiert. Wenn ich in Zeile B2 bin und rechte Maustaste drücke kommt das Menü, aber ab Zeile B3 geht es dann. Echt Super Danke.
AW: Hyperlink für Aktive Zelle
22.11.2016 19:26:05
fcs
Hallo Horst,
wenn du das Makro ein klein wenig studierst, dann solltest du herausfinden, wo du ändern musst, damit ab Zeile 2 die Suche beginnt.
LG
Franz
Anzeige
AW: Hyperlink für Aktive Zelle
22.11.2016 20:01:46
Horst
Hallo Franz,
Ok,ich nehme die Aufgabe an.
Melde mich wieder.
bis dann
Horst
AW: Hyperlink für Aktive Zelle
22.11.2016 20:14:38
Horst
Hallo Franz,
schau mal........
Userbild
Ich freue mich auf unser nächstes mal.
Danke Horst
Anzeige
Der Kandidat hat 100 Punkte owt
23.11.2016 06:08:13
fcs
..
Anzeige

Infobox / Tutorial

Hyperlinks in Excel: Dynamisches Verlinken zur Aktiven Zelle


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle das richtige Arbeitsblatt: Im Projekt-Explorer wähle das Arbeitsblatt, in dem du das Makro anwenden möchtest.

  3. Füge das Makro ein: Kopiere den folgenden Code und füge ihn in das Codefenster des Arbeitsblatts ein:

    'Ereignismakro unter dem Tabellenblatt mit der Liste
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        Dim varName
        Dim ZeileL As Long, Zeile As Long
        Select Case Target.Column
            Case 2 'spalte B
                Select Case Target.Row
                    Case Is >= 3  '3 = 1. Zeile mit einem Namen
                        varName = Target.Value
                        If varName <> "" Then
                            Cancel = True 'verhindert, dass Rechte-Maus-Menü eingeblendet wird
                            ZeileL = Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile mit Wert in Spalte B
                            Zeile = Target.Row
                            Do
                                Zeile = Zeile + 1
                                If Zeile > ZeileL Then
                                    MsgBox "Keine weiteren Einträge zu dem Namen: " & varName
                                    Exit Do
                                End If
                                If Cells(Zeile, Target.Column).Value = varName Then
                                    Cells(Zeile, Target.Column).Select
                                    ActiveWindow.ScrollRow = Zeile - 2
                                    Exit Do
                                End If
                            Loop
                        End If
                End Select
        End Select
    End Sub
  4. Test des Makros: Klicke mit der rechten Maustaste auf einen Namen in Spalte B, um die Funktion zu testen. Das Makro sollte zur nächsten Instanz des Namens in der Liste springen.


Häufige Fehler und Lösungen

  • Problem: Das Makro funktioniert nicht ab Zeile 2.

    • Lösung: Ändere die Zeile Case Is >= 3 zu Case Is >= 2 im Code, um die Suche ab der zweiten Zeile zu starten.
  • Problem: Das Kontextmenü erscheint trotz des Makros.

    • Lösung: Stelle sicher, dass der Cancel-Parameter auf True gesetzt ist, um das Standardmenü zu unterdrücken.

Alternative Methoden

Wenn du keinen VBA-Code verwenden möchtest, kannst du auch Hyperlinks manuell erstellen:

  1. Hyperlink-Funktion: Verwende die HYPERLINK-Funktion in Excel, um auf bestimmte Zellen zu verlinken. Beispiel:
    =HYPERLINK("#B5", "Gehe zu B5")
  2. Verknüpfungen anwenden: Nutze die Funktion „Verknüpfungen“ innerhalb von Excel, um auf andere Blätter oder externe Dokumente zu verlinken.

Praktische Beispiele

  • Beispiel für die Anwendung des Makros: Angenommen, du hast eine Liste mit Namen in Spalte B. Mit dem oben genannten VBA-Code kannst du durch Klicken mit der rechten Maustaste auf einen Namen zur nächsten Instanz dieses Namens springen.
  • Verwendung von HYPERLINK: Du kannst eine Zelle mit dem Befehl =HYPERLINK("#B3", "Nächster Eintrag") versehen, um schnell zu einem bestimmten Eintrag zu springen.

Tipps für Profis

  • Debugging: Nutze Haltepunkte im VBA-Editor, um den Code Schritt für Schritt zu analysieren. So kannst du die Werte von Variablen in Echtzeit verfolgen.
  • Optimierung: Achte darauf, den Code so zu optimieren, dass er auch bei sehr langen Listen schnell und effizient arbeitet.
  • Benutzerdefinierte Funktionen: Erstelle eigene Funktionen, um häufige Aufgaben zu automatisieren und den Workflow zu verbessern.

FAQ: Häufige Fragen

1. Wie übe ich VBA-Befehle effektiv?
Du kannst VBA-Befehle im Schrittmodus ausführen, indem du im Menü „Ansicht“ auf „Makros“ gehst und dann die Ausführung mit F8 steuerst. Haltepunkte helfen dir, den Code besser zu verstehen.

2. Kann ich das Makro auch in anderen Excel-Versionen verwenden?
Ja, das Makro sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren. Achte darauf, dass die Developer-Option aktiviert ist, um VBA nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige