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

VBA Doppelklick bei bestimmten Inhalt unterdrücken

VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 14:03:31
Jürgen Gomm
Hallo zusammen,
habe hier leider diesmal keine Lösung für mein Problem gefunden.
Ich arbeite gerade an einem Arbeitsplan in Excel. Bei einem Doppelklick in bestimmte Zellen öffnet sich eine Userform aus der eine Tätigkeit gewählt werden kann.
So weit so gut - steht in der entsprechenden Zelle "Urlaub" soll sich eine MsgBox mit einem Hinweis öffnen und die Userform nicht angezeigt werden.
Bis auf einen Haufen Fehlermeldungen habe ich das leider noch nicht hinbekommen.
Es wäre schön, wenn jemand hier die passende Idee hat.
Freundliche Grüße
Jürgen

Sub worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)


'Userform Tätigkeiten öffnen
If Not Intersect(Target, Range("G9:AA9, G12:AA12, g15:AA15, G18:AA18, G21:AA21, G24:AA24, G27:AA27, G30:AA30, G33:AA33, G36:AA36, G39:AA39, G42:AA42, G45:AA45, G48:AA48, G51:AA51, G54:AA54, G57:AA57, G60:AA60, G63:AA63, G66:AA66, G69:AA69, G72:AA72")) Is Nothing Then
Cancel = True
uf_Tätigkeiten.Show
End If
End Sub


12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 14:27:41
daniel
das ist eigentlich nicht so kompliziert:

If Not Intersect(Target, Range("G9:AA9, G12:AA12, g15:AA15, G18:AA18, G21:AA21, G24:AA24, G27:AA27, G30:AA30, G33:AA33, G36:AA36, G39:AA39, G42:AA42, G45:AA45, G48:AA48, G51:AA51, G54:AA54, G57:AA57, G60:AA60, G63:AA63, G66:AA66, G69:AA69, G72:AA72")) Is Nothing Then

Cancel = True
If Target.Value = "Urlaub" then
Msgbox "Deine Meldung"
else
uf_Tätigkeiten.Show
end if
End If


du solltest eher nach deinem Adressstring für die Range schauen.
der darf nicht länger als 256 Zeichen werden.

ich würde das so abfragen.
das Mod entspricht der Funktion "Rest" und so bekommst du ein WAHR für jede dritte Zeile.
If Not Intersect(Target, Range("G9:AA72")) is nothing

if Target.Row.Mod 3 = 0 Then
If Target.Value = "Urlaub" then
Msgbox "Hinweismeldung"
else
uf_Tätigkeiten.Show
end if
end if
end if


gruß Daniel
Anzeige
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 16:18:24
GerdL
Moin Jürgen,

nächster Versuch. Teste mal.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)


If Not Intersect(Target, Range("G9:AA72")) Is Nothing Then
If Target.Row Mod 3 = 0 Then
Cancel = True
If Target.Value = "Urlaub" Then
MsgBox "Hinweismeldung"
Else
uf_Tätigkeiten.Show
End If
End If
End If

End Sub


Gruß Gerd
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 16:21:43
Jürgen Gomm
Super - man kriegt hier schon Antworten bevor man die Frage abgeschickt hat ;)

Nochmal vielen Dank an alle Profis.

Gruß Jürgen
Anzeige
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 15:19:17
Jürgen Gomm
Hallo Daniel,
besten Dank für deine Antwort.
Das erste hatte ich so auch schon versucht. Bekomme dann aber die Meldung Laufzeitfehler - Typen unverträglich!?
Beim anderen kommt jetzt die Meldung Fehler beim Kompilieren - Syntaxfehler.
Gruß Jürgen
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 15:37:33
onur
If Target.Row Mod 3 = 0 Then
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 16:03:20
Jürgen Gomm
Danke Onur,

der Fehler hat sich schon mal erledigt.
Aber

If Target.Value = "Urlaub" Then

zeigt VBA mir immer noch als unverträglich an?

Wäre schön, wenn noch jemand eine Idee hätte.

Gruß Jürgen
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 16:06:05
onur
If Target = "Urlaub"

oder
If Target.Text = "Urlaub"
Anzeige
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 16:10:00
daniel
HI
enthält die Zelle, die du doppeltklickst, einen Fehlerwert?, dann musst du Target.Text anstelle von Target.Value verwenden
gehört die Zelle, die du anklickst, zu einem Zellverbund? Wenn ja, dann ist Target keine Einzelzelle sondern mehrere, und Target.Value ist kein Einzelwert, sondern ein Array mit allen Werten des Zellverbundes und müsste ebenfalls anders abgefragt werden als ein Einzelwert.
die Alternative ist, dass du von Target immer nur die erste Zelle nimmst, dass ist dann auf jeden Fall ein Einzelwert, egal ob Zellverbund oder nicht.
also am sichersten:

If Target(1).Text = "Urlaub" then

Gruß Daniel
Anzeige
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 16:18:17
Jürgen Gomm
Danke!!
Jetzt funktioniert es!
Allerdings wird mir jetzt nach dem schließen der MsgBox die Formel in der Zelle angezeigt.
Gibt es da evtl. noch eine Möglichkeit, das zu unterdrücken?
Gruß Jürgen
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 16:23:08
daniel
naja, zum Unterdrücken der von Excel vorgesehenen Doppelklick-Funktion (Zellinhalt direkt in der Zelle bearbeiten) gibt es den Befehl "Cancel = True" (den hast du ja schon in der ursprünglichen Version verwendet und solltest ihn daher kennen).
denn musst du jetzt so platzieren, dass er in beiden Fällen ausgeführt wird, also entweder in beiden IF-Teilen, oder außerhalb des ganzen IF-Blocks (ob davor oder danach spielt keine Rolle)

Gruß Daniel
Anzeige
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 17:11:20
Jürgen Gomm
Danke Daniel,
Hab es dann auch gemerkt. Manchmal steht man halt auf den Schlauch.
Gruß Jürgen
AW: VBA Doppelklick bei bestimmten Inhalt unterdrücken
11.12.2023 15:38:57
daniel
Hi
da wirst du irgendeinen Fehler gemacht haben.
ich hab den Code halt mal so direkt ins Forum getippt.
da ich keine Datei von dir bekommen habe, mit der ich ihn hätte testen können, liegt die Aufgabe der Fehlersuche und -bereinigung bei dir.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige