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

Initiator zum Ausführen von Hyperlinks ändern

Initiator zum Ausführen von Hyperlinks ändern
10.01.2024 22:30:29
Koko23
Hallo zusammen,

ich habe parallel zu meinem anderen aktuellen Beitrag noch eine zweite Frage, die ich nun separat stelle und mit einem möglichst aussagekräftigen Betreff versehen möchte. Vielleicht hilft das später anderen bei der Suche nach einer ähnlichen Problemlösung...

Leider habe ich im Forumsarchiv keine Antwort zu meiner spezifischen Frage gefunden, wie folgendes Problem gelöst werden kann:

Ich erstelle einen graphischen Prozessablauf in Excel. Dabei werden über mehrere VBA-Prozeduren durch Klicks auf Schaltflächen Formen erstellt, die dann beliebig auf dem Sheet angeordnet werden können. Bei der Erstellung jeder Form wird jeweils ein neues Tabellenblatt generiert, das mit der Form verlinkt ist. Von der Form auf Sheet1 ausgehend ist also ein Hyperlink auf dieses eine Tabellenblatt gesetzt. Funktioniert soweit alles prima!

Leider ist das Verschieben der Formen nun relativ nervig, weil das normale "Drag & Drop", das ja normalerweise mit einem Linksklick durchgeführt wird, immer direkt den Hyperlink auslöst und auf das entsprechende andere Tabellenblatt abgesprungen wird. Gibt es also eine Möglichkeit, dass der Hyperlink prinzipiell in der gesamten Excel-Datei anders ausgelöst wird als mit einem Linksklick? Es würde sich beispielsweise ein doppelter Rechtsklick anbieten o.ä. Und wenn es nicht möglich sein sollte, dass man die Ausführung von Hyperlinks für die gesamte Excel-Datei konfigurieren kann, gibt es dann eine andere Lösung hierfür? Kann man beispielsweise in den VBA-Code, der den Hyperlink generiert, irgendwie einen Befehl oder ein "Merkmal" einfügen, dass den Hyperlink sozusagen folgendermaßen charakterisiert: "löse nur aus, wenn du mit einem doppelten Rechtsklick aktiviert wirst"?

Ich freue mich auf eure Lösungsideen, vielen Dank schon mal dafür!

Gruß KoKo

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Initiator zum Ausführen von Hyperlinks ändern
11.01.2024 09:05:30
Pierre
Hallo,

ganz allgemein: Du kannst im Tabellenblatt und auch in der Arbeitsmappe selbst direkt Makros erstellen.

Heißen dann z. B. "Private Sub Worksheet_ (...)" bzw. analog "Workbook".

Da gibt es die Möglichkeiten "FollowHyperlink" oder "BeforeRightClick" oder "BeforeDoubleClick"

Sowohl beim Blatt als auch bei der Mappe.

Vielleicht kannst du damit rum experimentieren und vielleicht hilft das.

Ich weiß es allerdings nicht.

Geht es um das Makro aus deinem anderen Beitrag? Egal, ob ja oder nein, hilfreich wäre es jedenfalls, wenn du das Makro (auch) hier im Thread einstellst. Besser wäre sogar zusätzlich eine Beispielmappe mit allem relevanten. Echte Daten bitte verfremden.

Gruß Pierre
Anzeige
AW: Initiator zum Ausführen von Hyperlinks ändern
11.01.2024 10:20:18
Koko23
Vielen Dank erstmal, Pierre, für deine schnelle Antwort.
Ich habe deine Idee aufgegriffen und mal ausprobiert, leider bin ich anscheinend aber nicht ausreichend erfahren mit VBA, um mein Wunsch-Szenario in einen dementsprechenden Code zu übersetzen...

Um es vielleicht nochmal konkreter zu machen: Hier mein bisheriger Code, der so auch super funktioniert und in den sozusagen das "Merkmal", dass der Hyperlink durch einen doppelten Rechtsklick ausgelöst werden soll, noch eingebettet werden müsste.

Sub Prozessschritt_hinzufügen()


Dim objWorksheet As Worksheet
Dim objActiveSheet As Worksheet
Dim objShape As shape
Dim a As Long, AnzahlSheets As Long
Set objActiveSheet = ActiveSheet
Set objShape = objActiveSheet.Shapes.AddShape(msoShapeRectangle, 360, 25, 90, 110) '(rechts, unten, Breite, Länge)
With objShape
With .Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorBackground1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = -0.0500000007
.Transparency = 0
.Solid
End With
With .Line
.Visible = msoTrue
.ForeColor.RGB = RGB(146, 208, 80)
.Transparency = 0
.Weight = 3
End With

End With


' Bearbeiten und Formatieren des Texts innerhalb der Rechtecksform
With objShape.TextFrame.Characters
.Text = "" ' Text ändern
.Font.Color = RGB(0, 0, 0) ' Textfarbe auf Schwarz setzen
.Font.Size = 11 ' Schriftgröße auf 11 setzen
End With
With objShape.TextFrame2.TextRange
.ParagraphFormat.Alignment = msoAlignLeft ' Links ausrichten
End With


With objShape.TextFrame2
.VerticalAnchor = msoAnchorTop
End With 'Ausrichtung des Textes innerhalb des Absatz oben


Set objWorksheet = Worksheets.Add(After:=Sheets(Sheets.Count))


'Tabellenblätter fortlaufend nummerieren
Application.ScreenUpdating = False
AnzahlSheets = ActiveWorkbook.Worksheets.Count
For a = 5 To AnzahlSheets
Worksheets(a).Cells(1, 2).Value = a
Worksheets(a).Name = a
Next
Application.ScreenUpdating = True

'Hyperlink zu neu generiertem Tabellenblatt erzeugen
Call objActiveSheet.Hyperlinks.Add(Anchor:=objShape, Address:="", SubAddress:=objWorksheet.Cells(1, 1).Address(External:=True))


'Freigeben der Objektvariablen, um Speicherplatz freizugeben
Set objWorksheet = Nothing
Set objActiveSheet = Nothing
Set objShape = Nothing

'Rücksprung zu Prozessübersicht MASTER
Sheets("1-Prozessübersicht").Select


End Sub





Kann mir jemand bei der Lösung dieses konkreten Problems helfen?
Anzeige
AW: Initiator zum Ausführen von Hyperlinks ändern
12.01.2024 15:36:19
Mullit
Hallo,

Formular-Formen im Gegs. zu ActiveX-Controls kann man nur per EinfachClick ansteuern, aber mach einfach erst einen Rechtsklick auf die Form, dann kannst Du verschieben.....

Gruß, Mullit

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige