Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Intersect Methode mit Hyperlink

Intersect Methode mit Hyperlink
13.02.2018 07:44:27
Julian
Hallo Zusammen, ich benötige Hilfe bei folgender VBA Aufgabe...
Es soll bei Eingabe eines Werts in einem bestimmten Zellbereich innerhalb des aktiven Tabellenblatts der eingegebene Wert durch einen anderen Wert, welcher in Spalte B in einer anderen Tabelle steht, ersetzt werden. In dem Tabellenblatt wo die zu ersetzende Werte stehen, steht logischerweise in Spalte A des Eingabewerts.
Dazu habe ich auch eine gute Lösung gefunden, welche wie folgt aussieht...

Private Sub Worksheet_Change(ByVal Target As Range)
'** Dimensionierung der Variablen
Dim varWert As Variant
'** Vorgaben definieren
Set wsEin = ThisWorkbook.Sheets("Eingabe")
Set wsDat = ThisWorkbook.Sheets("Daten")
'** Zellbereich festlegen, in dem die Daten ersetzt werden sollen.
'** Im vorliegenden Beispiel soll dies im Bereich A4 bis A100 der Fall sein
If Not Application.Intersect(Target, Range("G5:AB22")) Is Nothing Then
On Error GoTo ende
'** Auslesen des erfassten Wertes und suchen des neuen Wertes in der Ersetzungs-Tabelle
varWert = WorksheetFunction.VLookup(Target.Value, wsDat.Range("A4:C100"), 3, False)
'** Eintragen der neuen Daten und ersetzen der Eingabe
Application.EnableEvents = False
Target.Value = varWert
Application.EnableEvents = True
End If
Exit Sub
'** Errorhandling mit Ausgabe eines Hinweises, wenn kein Treffer in der Liste gefunden wurde
ende:
If Target  "" Then
MsgBox "In der Datenliste wurde kein Treffer gefunden!", vbCritical, "Hinweis"
End If
End Sub
diese Lösung funktioniert soweit ganz gut, bis auf die Problematik dass ich in Spalte B des Tabellenblatts ("Daten") eigentlich nicht nur einen Zellinhalt sondern einen Hyperlink stehen habe, welcher in Tabellenblatt ("Eingabe")auch als Link wiedergegeben werden soll.
Das funktioniert derzeit leider noch nicht, egal ob ich den Pfad alleine oder direkt als verlinkten Zellwert ausgeben lasse. Der Link geht leider unterwegs verloren und es erscheint nur der reine Zellwert.
Vielen Dank, Gruß

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Intersect Methode mit Hyperlink
13.02.2018 11:05:12
ChrisL
Hi Julian
Private Sub Worksheet_Change(ByVal Target As Range)
'** Dimensionierung der Variablen
Dim wsEin As Worksheet, wsDat As Worksheet
Dim varWert As Variant
'** Vorgaben definieren
Set wsEin = ThisWorkbook.Sheets("Eingabe")
Set wsDat = ThisWorkbook.Sheets("Daten")
'** Zellbereich festlegen, in dem die Daten ersetzt werden sollen.
'** Im vorliegenden Beispiel soll dies im Bereich A4 bis A100 der Fall sein
If Not Application.Intersect(Target, Range("G5:AB22")) Is Nothing Then
On Error GoTo ende
'** Auslesen des erfassten Wertes und suchen des neuen Wertes in der Ersetzungs-Tabelle
varWert = WorksheetFunction.VLookup(Target.Value, wsDat.Range("A4:C100"), 3, False)
'** Eintragen der neuen Daten und ersetzen der Eingabe
Application.EnableEvents = False
Target.Formula = "=HYPERLINK(""" & varWert & """,""" & varWert & """)"
Application.EnableEvents = True
End If
Exit Sub
'** Errorhandling mit Ausgabe eines Hinweises, wenn kein Treffer in der Liste gefunden wurde
ende:
If Target  "" Then
MsgBox "In der Datenliste wurde kein Treffer gefunden!", vbCritical, "Hinweis"
End If
End Sub
cu
Chris
Anzeige
AW: Intersect Methode mit Hyperlink
13.02.2018 15:34:10
Julian
Hallo Chris, super Danke funktioniert.
nur habe ich jetzt noch eine kleine Änderung wie muss ich den Code anpassen wenn die "Ersetzen-Funktion" immer auf dem aktiven Sheet ausgeführt werden soll (Momentan muss ja die Einzelsheet benannt werden). also den Befehl ws-Ein
Ebenso soll der Befehl ws-Dat in einer separaten Excel-Arbeitsmappe nach dem zu ersetzenden Hyperlink suchen, funktioniert das dann noch?
AW: Intersect Methode mit Hyperlink
13.02.2018 15:51:36
ChrisL
Hi
Die Variabel wsEin verwendest du gar nicht und kannst du löschen.
Set wsDat = Worksheets("XY.xlsx").ThisWorkbook.Sheets("Daten")
cu
Chris
AW: Intersect Methode mit Hyperlink
14.02.2018 08:44:49
Julian
Hallo Chris,
nochmals Danke für deine Hilfe. Jetzt ist mir noch aufgefallen dass ich den Hyperlink gerne in "freundlicher Schreibweise" also abgekürzter Form gerne stehen hätte da der Pfad recht lang ist.
Wie muss ich das hier dann angehen...
 Target.Formula = "=HYPERLINK(""" & varWert & """,""" & varWert & """)"
also zu Info ich habe in meiner wsDat-Tabelle sowohl den kompletten Pfad als Link sowohl als auch die gewünschte Bezeichnung im "freundlicher-Link-Darstellung".
also wenn der Link z.B. so hier aussieht
File:\\xxxx\yyyy\zzzzzzzz\20180214_W110.xlsx hätte ich gerne nur als "W110" dargestellt...
Besten Dank
Anzeige
AW: Intersect Methode mit Hyperlink
14.02.2018 11:31:04
ChrisL
Hi
Sub t()
Dim s As String
s = "File:\\xxxx\yyyy\zzzzzzzz\20180214_W110.xlsx"
s = Right(s, Len(s) - InStrRev(s, "_"))
s = Left(s, InStr(s, ".") - 1)
MsgBox s
End Sub
cu
Chris
AW: Intersect Methode mit Hyperlink
14.02.2018 15:35:03
Julian
Hallo Chris,
musste bei dem ursprünglichen "ersetzen"-Code aber nun Folgendes feststellen...
Wenn ich damit den Hyperlink in einem der angegebenen Bereiche durch Schreiben des "Kürzels" in der Zelle ersetzen lasse, und den Zellinhalt samt Link wieder entferne, dann wird mit erneuter Eingabe eines zu ersetzenden Werts dieser nicht mehr durch den Hyperlink wie gewünscht ersetzt.
Meine Anforderungen wären hier die Eingabe ständig löschen oder überschreiben zu können, mit Klick auf den entsprechenden Link zu einem Auftragsblatt gelange.
Danke für die Unterstützung
Anzeige
AW: Intersect Methode mit Hyperlink
14.02.2018 15:50:54
ChrisL
Hi Julian
Kann ich so nicht nachvollziehen. Der Link wird durch die Formel =HYPERLINK erzeugt und wenn die Formel gelöscht ist, dann ist die Zelle wieder leer.
Bei einem "echten" Hyperlink könnte ich das Verhalten nachvollziehen. Dann müsste man den Link halt vorher noch löschen
Target.Hyperlinks.Delete
cu
Chris
AW: Intersect Methode mit Hyperlink
15.02.2018 15:10:00
Julian

Sub t()
Dim s As String
s = "File:\\xxxx\yyyy\zzzzzzzz\20180214_W110.xlsx"
s = Right(s, Len(s) - InStrRev(s, "_"))
s = Left(s, InStr(s, ".") - 1)
MsgBox s
End Sub
nochmal ne Frage, wie kriegen ich den Verweis aus
s = "File:\\xxxx\yyyy\zzzzzzzz\20180214_W110.xlsx"

so umgeschrieben dass ich hier auf eine Spalte verweisen kann in welcher die Info steht..
also jede Auftragsnummer hat ja seinen eigenen Auftrag mit eigenem Pfad.
Danke
Anzeige
AW: Intersect Methode mit Hyperlink
15.02.2018 18:37:23
ChrisL
Verstehe nur noch Bahnhof...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige