Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
720to724
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
720to724
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro nur starten wenn kein Hyperlink in Zelle

Makro nur starten wenn kein Hyperlink in Zelle
24.01.2006 10:54:25
MartinM
Hallo Forum
Wie kann ich testen ob die aktive Zelle einen Hyperlink enthält?
Grund: Makro soll nur dann ausgeführt werden wenn die aktive Zelle keinen Hyperlink enthält.
Gruss MartinM
Danke den VBA Göttern

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nur starten wenn kein Hyperlink in Zelle
24.01.2006 11:12:56
Heiko
Hallo Martin,
z.B. so:

Sub test()
If ActiveCell.Hyperlinks.Count > 0 Then
MsgBox "Hyperlink, Makro wird nicht gestartet !", vbCritical
Else
MsgBox "Kein Hyperlink, Makro wird gestartet !", vbInformation
End If
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Makro nur starten wenn kein Hyperlink in Zelle
24.01.2006 12:37:17
MartinM
Danke Euch beiden
habe die Variante von Hajo eingefügt.
es besteht aber noch ein neues Problem.
Wenn eine Zelle verändert wird, fange ich das mit Worksheets_change ab und bearbeite die Eingabe nach Kriterien.
Wie kann ich nun bei fehlerhaften Eingaben die Zelle auf den Wert vor der änderung zurückstellen?
Beispiel: Zelle J4 hat den bestehenden Wert 2 jetzt wird J4 verändert mit dem Wert N
jetzt greift Worksheets_change. Bei Fehler sollte jetzt die Zelle J4 wieder den Wert 2 erhalten. Nur wie kann ich den bestehenden Wert in eine Variable eintragen? die Variable Target hat bereits den neuen Wert.
Gruss
Martin
Anzeige
AW: Makro nur starten wenn kein Hyperlink in Zelle
24.01.2006 13:14:57
Heiko
Hallo Martin,
wo ist denn in diesem Thread Hajo vertreten ?!
Mal als Anregung, in das Codefenster des entsprechenden Tabellenblattes, wenn die Werte durch User und VBA verändert werden können.
Option Explicit
Public varWert As Variant

Private Sub Worksheet_Activate()
varWert = Selection
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
' Hier muss dann natürlich deine Überprüfung rein !
If MsgBox("Wert erhalten ?", vbYesNo) = vbYes Then
Exit Sub
Else
Application.EnableEvents = False
Target = varWert
Application.EnableEvents = True
End If
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
varWert = Target
Application.EnableEvents = True
End Sub

Oder, wenn es nur um Eingaben vom User geht, z.B. so: in das Codefenster des entsprechenden Tabellenblattes

Private Sub Worksheet_Change(ByVal Target As Range)
' Hier muss dann natürlich deine Überprüfung rein !
If MsgBox("Wert erhalten ?", vbYesNo) = vbYes Then
Exit Sub
Else
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Makro nur starten wenn kein Hyperlink in Zelle
24.01.2006 14:53:15
MartinM
Hallo Heiko
Entschuldige die Verwechslung.
Es funktioniert. Danke
VBA-Gruss MartinM
Der Weg ist das Ziel!
AW: Makro nur starten wenn kein Hyperlink in Zelle
24.01.2006 11:16:16
u_
Hallo,

Sub test()
Dim myHyp As Hyperlink
On Error Resume Next
Set myHyp = ActiveCell.Hyperlinks(1)
On Error GoTo 0
If myHyp Is Nothing Then
MsgBox "keiner da"
Else
MsgBox myHyp.SubAddress
End If
End Sub

Gruß
Geist ist geil!
AW: Makro nur starten wenn kein Hyperlink in Zelle
24.01.2006 12:36:39
MartinM
Danke Euch beiden
habe die Variante von Hajo eingefügt.
es besteht aber noch ein neues Problem.
Wenn eine Zelle verändert wird, fange ich das mit Worksheets_change ab und bearbeite die Eingabe nach Kriterien.
Wie kann ich nun bei fehlerhaften Eingaben die Zelle auf den Wert vor der änderung zurückstellen?
Beispiel: Zelle J4 hat den bestehenden Wert 2 jetzt wird J4 verändert mit dem Wert N
jetzt greift Worksheets_change. Bei Fehler sollte jetzt die Zelle J4 wieder den Wert 2 erhalten. Nur wie kann ich den bestehenden Wert in eine Variable eintragen? die Variable Target hat bereits den neuen Wert.
Gruss
Martin
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige