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

Dynamischer Hyperlink zu Duplikat

Forumthread: Dynamischer Hyperlink zu Duplikat

Dynamischer Hyperlink zu Duplikat
10.04.2025 14:02:24
CaNa
Hallo ins Forum.

Ich möchte in einer Arbeitsmappe mit mehreren Tabellenblätter ausgesuchte Einträge in einem Tabellenblatt Gesamt zusammenfassen.

Von dieser Gesamtübersicht (Tabelle1) aus möchte ich bei Rechtsklick in Spalte 5 (Zahl), den entsprechenden Eintrag im jeweiligen Tabellenblatt Spalte 2 öffnen,
d.h. der dynamische Link muss den Gegenwert in der Gesamten Arbeitsmappe suchen.

Ich habe mich hier an einer Formel die ich im Forum entdeckt habe versucht, aber leider funktioniert es nicht so wie ich es mir vorstelle.

Ggf. kann mir ein versierter VBA-Kenner hier eine Hilfestellung geben?

Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim C As Range
With Target
If .Column = 5 Then
If .Value > "" Then
Set C = Tabelle1.Columns(5).Find(.Value & Target.Offset(0, -1), lookat:=xlWhole)
If Not C Is Nothing Then
Tabelle1.Select
C.Offset(0, -7).Select
Cancel = -1
End If
End If
End If
End With
End Sub

Danke im Voraus.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dynamischer Hyperlink zu Duplikat
10.04.2025 16:19:54
daniel
Hi
wir helfen dir gerne.
für eine konkrete Hilfestellung sind aber ein paar weitere Informationen von dir hilfreich:
1. das Hochladen der Datei, damit wir dein Problem nachvollziehen und unsere Lösungsideen auch testen können
2. eine konkretere Beschreibung das Problems. " aber leider funktioniert es nicht so wie ich es mir vorstelle." ist jetzt nicht besonders informativ. Bitte beschreibe auch, was du dir den vorgestellt hast und wie dein Makro davon abweicht, bzw wie sich dieses "nicht funktionieren" bei dir bemerkbar macht.

Gruß Daniel
Anzeige
AW: Dynamischer Hyperlink zu Duplikat
10.04.2025 18:57:49
CaNa
Vielen Dank für die Antwort.

Sorry, wenn ich zu wenige Informationen geliefert habe um mir hilfreich zur Seite springen zu können.

Ich habe nunmehr eine Beispieldatei hochgeladen, in der bei Rechtsclick auf die entsprechend markierte Zelle einfach gar nichts passiert.

Zu erwähnen wäre noch, dass die Tabellenblätter sporadisch ausgetauscht werden durch aktuellere Versionen bzw. auch neue Tabellenblätter hinzukommen können, so dass immer die gesamte Arbeitsmappe betrachtet werden muss.

Ich hoffe die Beispieldatei hilft mein Problem zu verdeutlichen.

https://www.herber.de/bbs/user/176689.xlsm


Anzeige
In der Anlage ist ein...
10.04.2025 19:57:36
Case
Moin, :-)

... Beispiel - basierend auf deiner Arbeitsmappe. ;-)
https://www.herber.de/bbs/user/176690.xlsm

Ereigniscode gehört nicht in ein Modul (Worksheet_BeforeRightClick ist ein Ereigniscode und gehört in den Codebereich des Tabellenblattes): ;-)
https://online-excel.de/excel/singsel_vbaab78.html

Zu Find (Beachte insbesondere die Bemerkung, falls bei dir etwas nicht klappt): ;-)
https://learn.microsoft.com/de-de/office/vba/api/excel.range.find

Servus
Case
Anzeige
AW: Dynamischer Hyperlink zu Duplikat
10.04.2025 20:08:09
daniel
Hi
da passiert nichts, weil du das Makro in einem allgemeinen Modul platziert hast.
solche Makros, die bei Anwenderaktionen (=Events) automatisch gestartet werden sollen, müssen in das Modul des jeweiligen Tabellenblatts, in deinem Fall also in das Modul des Tabellenblatts "Gesamt" also Tabelle1
außerdem hast du in der falschen Spalte gesucht, die Werte stehen in den anderen Blättern in der Spalte B.
wenn nicht nur in der Spalte B sondern in allen Spalten gesucht werden soll, ersetze .Colums(2) durch .Cells
hier der Code für das Durchsuchen der anderen Tabellenblätter
ausgegeben wird immer der nächste Treffer.
mit Application.Goto kann man die gefundene Zelle direkt selektieren, mit .Select müsste man zuerst das Tabellenblatt aktivieren.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Dim C As Range
Dim sh As Worksheet
With Target
If .Column = 5 Then
If .Value > "" Then
For Each sh In ThisWorkbook.Worksheets
If sh.Name > Me.Name Then
Set C = sh.Columns(2).Find(.Value & Target.Offset(0, -3), lookat:=xlWhole)
If Not C Is Nothing Then Exit For
End If
Next
If sh Is Nothing Then
MsgBox "kein Duplikat in anderem Blatt gefunden."
Else
Application.Goto C
End If
Cancel = True

End If
End If
End With
End Sub


Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige