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

Ein Fenster öffnen beim Klicken auf einen String!

Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 11:04:53
Peter
Hallo Leute,
ich schreibe unter bestimmten Bedingungen folgendes in eine Zelle:
"Bitte Hpyerlink einfügen". Jetzt hätte ich es gerne so, dass man auf diesen String klicken kann und sich direkt das Fenster öffnet, wo man die Pfad und die Hyperlinkbenennung angibt. Versteht ihr was ich meine?
Das muss doch irgendwie gehen, oder?
Ich wäre euch sehr dankbar.
Dies ist ein Teil des Codes:
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.FormulaR1C1 = "Bitte Hyperlink einfügen"

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 11:27:46
Rudi
Hallo,
ins Klassenmodul der Tabelle:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = "Bitte Hyperlink einfügen" Then
Application.Dialogs(xlDialogInsertHyperlink).Show
End If
End Sub

Gruß
Rudi

AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 11:45:46
Peter
Hallo,
vielen Dank für deine schnelle Antwort.
Jedoch hat es so nicht funktioniert. Ich habe es daraufhin so ausprobiert:
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.FormulaR1C1 = "Hyperlink einfügen"
Application.Dialogs(xlDialogInsertHyperlink).Show
so funktioniert es jetzt, sobald ich den hinterlegten button für die Prozedur ausführe. Das ist ja schon mal gut. Aber bessere wäre es noch, wenn es erst beim Klicken auf den String "Hyperlink einfügen" erscheint, also das Fenster. Das Fenster ist auf jeden Fall das richtige.
Vielen Dank schon mal.
LG

Anzeige
AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 11:52:09
Rudi
Hallo,
wenn es erst beim Klicken auf den String "Hyperlink einfügen" erscheint,
genau das macht mein Code.
Wo hast du ihn abgelegt?
Gruß
Rudi

AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 11:56:11
Peter
Dort:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target = "Bitte Hyperlink einfügen" Then
Application.Dialogs(xlDialogInsertHyperlink).Show
End If
End Sub
Sub einfärben()
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.FormulaR1C1 = "Insert hyperlink"
With .Characters(Start:=1, Length:=2).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End With

Anzeige
falscher Ort!
05.12.2013 12:00:16
Rudi
Hallo,
ich habe geschrieben ins Klassenmodul der Tabelle:
Rechtsklick auf den Reiter, Code anzeigen.
Gruß
Rudi

AW: falscher Ort!
05.12.2013 12:08:34
Peter
Tut mir leid - VBA bescheiden =/
Haben es gemacht, dadurch erscheint es jetzt unter Modul 1.
Es funktioniert jedoch leider immer noch nicht.
Vielen Dank aber schon mal
MfG

AW: falscher Ort!
05.12.2013 12:16:01
Rudi
Hallo,
dadurch erscheint es jetzt unter Modul 1.
noch immer falsch.
Im VBE Doppelklick auf die Tabelle und in das rechte Fenster kopieren.
Gruß
Rudi

AW: falscher Ort!
05.12.2013 13:11:30
Peter
Da hatte ich es doch schon. Es funktioniert nicht.

Anzeige
ich geb's auf. owT
05.12.2013 13:23:59
Rudi

AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 13:34:26
Peter
Ja, wenn es nicht funktioniert, so wie sie sagen, kann ich es doch auch nicht ändern!

AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 13:48:55
Peter
Es funktioniert, jedoch erst wenn ich nachdem die Zelle eingefärbt wurde eine andere Zelle anklicke, und danach wieder die Zelle mit dem String. Dann funktioniert es.
Tut mir leid, das habe ich nicht ausprobiert.
Wissen Sie woran das liegt? Kann man das noch irgendwie umgehen?
LG

AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 13:58:38
Rudi
Hallo,
der Code reagiert auf Änderung der Auswahl. Eine Alternative ist ein Doppelklick auf die Zelle.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target = "Bitte Hyperlink einfügen" Then
Application.Dialogs(xlDialogInsertHyperlink).Show
Cancel = True
End If
End Sub

Oder ganz pragmatisch unschön: An das Ende des Färbecodes Selection.Offset(1).Select
Gruß
Rudi

Anzeige
AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 13:50:24
EtoPHG
Hallo Peter,
Den Code hast du ja anscheinend schon im Klassenmodul einer Tabellenblatts.
Kopiere jetzt noch "Bitte Hyperlink einfügen" (ohne Gänsefüsschen!) in eine leere Zelle des Blatts.
Selektier eine andere Zelle und dann zurück zu der Zelle in die du den Text kopiert hast.
Wenn jetzt nichts passiert, lade deine Mappe zur Fehlersuche ins Forum!
Gruess Hansueli

AW: Ein Fenster öffnen beim Klicken auf einen String!
05.12.2013 13:54:48
Peter
Hallo Hanueli,
genau daran lag es, danke. Man muss erst eine andere Zelle selektieren, befor man auf den String klickt.
Sie wissen auch nicht, wie man das umgehen kann, oder?
LG und danke noch mal an Rudi.

Anzeige
Ok, dann nimm diesen Code
05.12.2013 13:59:51
EtoPHG
Peter,
Ein-Klick in eine Zelle verursacht das Selektieren der Zelle.
Dieses Ereignis ist mit der _SelectioChange Ereignis abgefangen, das natürlich nur dann anspricht, wenn eine Zelle 'gewechselt' wird.
Die Fragen zu deiner Anforderung: Wie kommen den die Texte in das Blatt? Wurden die vorher da rein geschrieben (Manuell oder mit VBA)? Könntest du mit eine Doppel-Klick oder einem Rechts-Klick in solche Zellen leben?
Gruess Hansueli

Wie kommen den die Texte in das Blatt?
05.12.2013 14:05:43
Rudi
Hallo,
steht doch im Eröffnungsthread. Per Code.
Gruß
Rudi

Man sollte halt alles lesen ;-)
05.12.2013 14:12:39
EtoPHG
...aber du hast ihm schon einen Code für Doppel-Klick mitgegeben.
Also @Peter lösche den SelectionChange-Code und nimm den DoubleClick-Code.
Gruess Hansueli

Anzeige
AW: Ok, dann nimm diesen Code
05.12.2013 14:06:19
Peter
Die Texte werden auch mit VBA reingeschrieben.
Na klar, rechtsklick würde auch gehen. Doppelklick auch. Wenn man dann dabei nicht erst eine andere Zelle selektrieren muss.
Vielen Dank.

bei mir funktioniert es!
05.12.2013 13:50:52
Rudi
Hallo,
lade die Mappe hoch.
Gruß
Rudi

AW: bei mir funktioniert es!
05.12.2013 14:48:25
Peter
Also es funktioniert leider irgendwie alles immer noch nicht. Deswegen hier noch mal die beiden Wege und was jeweils passiert.
1. Variante: Diesen Code habe ich unter Modul1:
Sub StatusGruen()
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.FormulaR1C1 = "Insert hyperlink"
With .Characters(Start:=1, Length:=2).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End With
Und diesen Code unter der entsprechenden Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("E10:AA140")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
MsgBox "Changed cell(s):  " & Selection.Address

Private Sub Worksheet_DoubleClick(ByVal Target As Range)
If Target = "Insert hyperlink" Then
Application.Dialogs(xlDialogInsertHyperlink).Show
End If
End Sub

Dabei passiert gar nichts.
Wenn ich das gleiche mache ( Variante 2 ) mit selection anstelle von DoubleClick, dann muss ich immer erst eine andere Zeile anwählen, bis das Fenster für den Hyperlink öffnet.
Danke und LG

Anzeige
AW: bei mir funktioniert es!
05.12.2013 14:50:16
Peter
Also es funktioniert leider irgendwie alles immer noch nicht. Deswegen hier noch mal die beiden Wege und was jeweils passiert.
1. Variante: Diesen Code habe ich unter Modul1:
Sub StatusGruen()
With Selection.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.FormulaR1C1 = "Insert hyperlink"
With .Characters(Start:=1, Length:=2).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 12
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End With
Und diesen Code unter der entsprechenden Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("E10:AA140")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
MsgBox "Changed cell(s):  " & Selection.Address

Private Sub Worksheet_DoubleClick(ByVal Target As Range)
If Target = "Insert hyperlink" Then
Application.Dialogs(xlDialogInsertHyperlink).Show
End If
End Sub

Dabei passiert gar nichts.
Wenn ich das gleiche mache ( Variante 2 ) mit selection anstelle von DoubleClick, dann muss ich immer erst eine andere Zeile anwählen, bis das Fenster für den Hyperlink öffnet.
Danke und LG

Anzeige
AW: bei mir funktioniert es!
05.12.2013 15:17:36
Rudi
Hallo,
du musst dich schon an die korrekten Erignis-Prozedurnamen halten.
Private Sub Worksheet_DoubleClick(ByVal Target As Range)
gibt es nicht!!!!!!!!!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target = "Insert hyperlink" Then
Cancel = True
Application.Dialogs(xlDialogInsertHyperlink).Show
End If
End Sub

Gruß
Rudi

AW: bei mir funktioniert es!
05.12.2013 15:25:20
Peter
Okay, tut mir leid, ich habe leider noch nicht viel Erfahrung.
Aber es klappt!
Super.
Vielen vielen Dank.

Anzeige
AW: bei mir funktioniert es!
05.12.2013 15:40:05
Peter
Rudi, noch eine letze Frage:
Die meisten Zellen sind von der Breite nicht ausreichen für die Ausgabe "Doubleclick to insert hyperlink"
Deswegen habe ich es so geschrieben : "Doubleclick to insert" & vbCrLf & "Hyperlink".
Jedoch jetzt funktionert das mit dem Doppelclick ja nicht mehr.
Hast du da noch eine Lösung für mich?
Vielen dank nochmal bzw schon mal.

Danke, kann geschlossen werden!
05.12.2013 15:42:51
Peter
Alles gut, funktionert doch. Hatte einen Tippfehler.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige