Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
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

BeforeDoubleClick und Inhalt

BeforeDoubleClick und Inhalt
04.08.2020 12:16:43
Umberto
Hallo zusammen,
ich habe eine Frage bezüglich der BeforeDoubleClick Funktion. Gibt es eine Möglichkeit die Doppelklickfunktion vom Inhalt der Zelle abhängig zu machen? Sprich wenn der Inhalt "XYZ" in der Zelle steht dann öffne bei einem Doppelklick den folgenden Link. Und beim Inhalt "ABC" bitte diesen Link öffnen, usw...
Ich habe bereits einen Code der einwandfrei funktioniert. Sobald ich jedoch eine Zeile lösche muss ich immer wieder die Target.Address manuell anpassen. Das geht doch bestimmt auch einfacher. Das ganze mache ich für acht weitere Links, jedoch immer nur in der Spalte A. Dies ist ein Ausschnitt meines Codes für einen Link:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Target.Address = "$A$1" Or Target.Address = "$A$2" Or Target.Address = "$A$3" Or Target.Address = "$A$4" Or Target.Address = "$A$5" Or Target.Address = "$A$6" Then
ThisWorkbook.FollowHyperlink "LINK"
Cancel = True
End If
Vielen Dank für eure Hilfe!

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

Betreff
Datum
Anwender
Anzeige
AW: BeforeDoubleClick und Inhalt
04.08.2020 12:32:08
volti
Hallo Umberto,
Du könntest den betroffen Range der Zeilen einen Namen geben, z.B. "MeinRange" und folgendermaßen anwenden:
Wenn innerhalb dieses Bereichs Zeilen eingefügt werden, wird der Bereich automatisch erweitert.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
 If Not Application.Intersect(Target, Range("MeinRange")) Is Nothing Then
   ThisWorkbook.FollowHyperlink "LINK"
   Cancel = True
 End If
End Sub
viele Grüße
Karl-Heinz
Anzeige
AW: BeforeDoubleClick und Inhalt
04.08.2020 13:01:10
volti
Hallo Umberto,
ich glaube, ich hatte es falsch verstanden.
Du könntest jeder betroffenen Zeile einen Namen geben, z.B. "Link1" und folgendermaßen anwenden:
Wenn Zeilen eingefügt, gelöscht oder verschoben werden, verweist der jeweilige Name immer noch auf die entsprechende Zelle.
Option Compare Text

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Cancel = True
 On Error GoTo Fehler
 With Target
  If .Name.Name = "Link1" And .Value Like "abc" Then
    ThisWorkbook.FollowHyperlink "LINK1"
  ElseIf .Name.Name = "Link2" And .Value Like "abc" Then
    ThisWorkbook.FollowHyperlink "LINK2"
  Else
Fehler:
    Cancel = False
  End If
 End With
End Sub
viele Grüße
Karl-Heinz
Anzeige
AW: BeforeDoubleClick und Inhalt
04.08.2020 13:03:00
Umberto
Hallo Karl-Heinz,
vielen Dank für die Hilfe. Das mit dem Range ist gar nicht mein eigentliches Problem. Meinetwegen kann der VBA Code die gesamte Spalte A nach dem gesuchten Inhalt überprüfen und genau dann in dieser Zelle eine Doppelklick-Funktion hinterlegen, sofern dieser gesuchte Inhalt in der Zelle steht.
Sprich: Wenn "Hallo" in der Spalte A in Zelle A1, A2 und A10 steht soll er automatisch bei einem Doppelklick den hinterlegten Link öffnen. So wie in dem eigentlichen Code von mir. Nur ohne diese Aufzählung jeder einzelnen Zelle. Wenn "Tschüss" in der Spalte A in Zelle A3, A4 und A11 genau dasselbe spiel, nur mit einem anderen Link. Das gleiche dann auch für die weiteren Fälle und Links. Ist das möglich?
Anzeige
AW: BeforeDoubleClick und Inhalt
04.08.2020 13:12:29
EtoPHG
Hallo Umberto,
Du redest immer von einem hinterlegten Link. Was ist das? Wo ist der im Tabellenblatt zu finden?
Soll einfach der Inhalt der Zelle als Hyperlink aufgerufen werden? Wenn dem so ist, was macht das Ganze für einen Sinn, denn dann kann ich ja auf den Link klicken, statt doppelklicken?
Ich finde deine Formulierungen entsprechen nicht den angegebenen Levels.
Gruess Hansueli
AW: BeforeDoubleClick und Inhalt
04.08.2020 13:07:17
Rudi

if target.column=1 then
select case target
case "abc": ThisWorkbook.FollowHyperlink "LINK"
case "def": ThisWorkbook.FollowHyperlink "LINK2"
end select
end if

Anzeige
AW: BeforeDoubleClick und Inhalt
04.08.2020 13:30:11
Umberto
Vielen Dank an alle! Nun funktioniert es. Der Vorschlag von Rudi war genau das, nachdem ich gesucht habe.
AW: BeforeDoubleClick und Inhalt
04.08.2020 15:15:15
Umberto
Hallo Rudi, könntest du mir eventuell noch einmal kurz helfen? Ich wäre dir sehr dankbar. Das Problem in der ersten Spalte ist jetzt behoben. In der zweiten habe ich auch eine BeforeDoubleClick Funktion eingefügt, die bei einem Doppelklick in der jeweiligen Zelle ein unsichtbares Arbeitsblatt zunächst erstmal wieder sichtbar macht und dann direkt darauf wechselt. Der Code sieht so aus:
If Target.Address = "$B$2" Or Target.Address = "$B$3" Or Target.Address = "$B$4" Or Target.Address = "$B$5" Or Target.Address = "$B$6" Or Target.Address = "$B$7" Then
Sheets("Arbeitsblatt 1").Visible = True
Sheets("Arebitsblatt 1").Select
Cancel = True
End If
Auch hier habe ich das Problem mit den verschiedenen Target Adressen. Wenn ich etwas hinzufüge oder lösche, muss ich auch hier alles manuell anpassen. Den gleichen Code wie bei Spalte 1 zu nutzen ist leider nicht möglich, da die Zellen in Spalte 2 alle verschiedene Inhalte haben.
Ich habe bereits eine Idee, kann diese aber nicht ganz umsetzen. Bei einem Doppelklick in einer Zelle in Spalte 2, wechsle auf die linke Zelle (in Spalte 1), überprüfe was hier drin steht (der Inhalt steht in Verbindung mit der Zelle in Spalte 2) und je nachdem was in dieser Zelle steht Arbeitsblatt XYZ wieder sichtbar machen und auswählen. Dieser Code wäre ein Ansatz, funktioniert aber leider nicht:
If Target.Column = 2 Then
ActiveCell.Offset(0, -1).Select
Select Case Target
Case "Arbeitsblatt 1": Sheets("Arbeitsblatt 1").Visible = True
Sheets("Arbeitsblatt 1").Select
Case "Arbeitsblatt 2": Sheets("Arbeitsblatt 2").Visible = True
Sheets("Arbeitsblatt 2").Select
'das ganze für 6 weitere Arbeitsblätter
End Select
End If
Anzeige
AW: BeforeDoubleClick und Inhalt
04.08.2020 15:52:01
Rudi
Hallo,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim bolCANCEL As Boolean
Select Case Target.Column
Case 1  'A
bolCANCEL = True
Select Case Target
Case "abc": ThisWorkbook.FollowHyperlink "LINK"
Case "def": ThisWorkbook.FollowHyperlink "LINK2"
End Select
Case 2  'B
bolCANCEL = True
Select Case Target.Offset(, -1)
Case "Arbeitsblatt2"
With Sheets("Arbeitsblatt2")
.Visible = xlSheetVisible
.Select
End With
'etc
End Select
'      wenn der Blattname in der NebenZelle steht, kannst du Select Case Target weglassen:
'          With Sheets(Target.Offset(, -1))
'        .Visible = xlSheetVisible
'        .Select
'      End With
End Select
Cancel = bolCANCEL
End Sub

Gruß
Rudi
Anzeige
AW: BeforeDoubleClick und Inhalt
04.08.2020 16:01:42
Umberto
Super, vielen lieben Dank!

48 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige