Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wert einfügen per Doppelklick

Wert einfügen per Doppelklick
20.02.2008 21:06:54
mike49
Hallo zusammen,
ich habe ein kleines Makro, mit dem durch Doppelklick in eine Zelle im Bereich E8:E38 der Zeitwert "09:00" eingefügt wird.
Wie müsste man das Makro erweitern, dass bei erneutem Doppelklick in die Zelle der Wert wieder gelöscht wird?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Bereich As Range
Dim Z
Application.EnableEvents = False
Set Bereich = Range("E8:E38")
If InStr(Target.Address, ":") = 0 Then  ' überprüfen ob mehr als eine Zelle markiert
Cancel = True
If Intersect(Target, Bereich) Is Nothing Then GoTo Ende
' Abbruch, wenn Aktion nicht im Zielbereich
Target.Value = "09:00"
Else
For Each Z In Selection
Dim S As String
S = Z.Address
If Intersect(Z, Bereich) Is Nothing Then
Else
Cancel = True
Z.Value = "09:00"
End If
Next Z
End If
Ende:
Application.EnableEvents = True
End Sub


Gruß
mike49

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert einfügen per Doppelklick
20.02.2008 21:13:25
Hajo_Zi
Hallo mike,

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("E8:E38")) Then
Cancel = True
If Target = "" Then
Target = "9:00"
Else
Target = ""
End If
End If
End Sub



AW: Wert einfügen per Doppelklick
20.02.2008 21:17:00
mike49
Hallo Hajo,
danke für die schnelle Hilfe. Es funktioniert mit dem Eintrag.
Wie kann ich aber den Eintrag durch erneuten Doppelklick wieder löschen?
Gruß
mike49

Probiers doch einfach mal aus o.w.T.
20.02.2008 21:20:00
Ramses
...

AW: Probiers doch einfach mal aus o.w.T.
20.02.2008 21:28:21
mike49
Hallo Ramses,
war missverständlich von mir geantwortet. Hab's natürlich probiert, aber das Löschen klappt nicht.
Gruß
mike49

Anzeige
AW: Probiers doch einfach mal aus o.w.T.
20.02.2008 21:29:00
Hajo_Zi
Hallo Mike,
dann musst Du eine besondere Version von Excel haben. Bei mir klappt es.
Gruß Hajo

AW: Probiers doch einfach mal aus o.w.T.
20.02.2008 21:51:00
mike49
Hallo Hajo,
den Fehler habe ich gemacht. Ich habe das Makro in "Diese Arbeitsmappe" geschrieben und da hat es nicht funktioniert. Wie dem auch sei. Jetzt klappt's so wie gewollt. Danke nochmals.
Gruß
mike49

If Target.Value <> "" Then Target.ClearContents ..
20.02.2008 21:13:44
Matthias
Hallo Mike
probier das mal ...
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Bereich As Range
Dim Z
Application.EnableEvents = False
Set Bereich = Range("E8:E38")
If InStr(Target.Address, ":") = 0 Then  ' überprüfen ob mehr als eine Zelle markiert
Cancel = True
If Intersect(Target, Bereich) Is Nothing Then GoTo Ende
' Abbruch, wenn Aktion nicht im Zielbereich
   If Target.Value = "" Then Target.Value = "09:00": GoTo weiter
If Target.Value  "" Then Target.ClearContents: GoTo weiter
weiter:
Else
For Each Z In Selection
Dim S As String
S = Z.Address
If Intersect(Z, Bereich) Is Nothing Then
Else
Cancel = True
Z.Value = "09:00"
End If
Next Z
End If
Ende:
Application.EnableEvents = True
End Sub


Gruß Matthias

Anzeige
AW: If Target.Value <> "" Then Target.ClearContents ..
20.02.2008 21:23:08
mike49
Sorry Matthias,
der eingetragene Wert wird durch erneuten Doppelklick nicht wieder gelöscht.
Gruß
mike49

bei mir funktioniert es!
20.02.2008 22:25:18
Matthias
Hallo
Du hast sicher, wie bei den anderen Beiträgen den Code nicht in das Tabellenblatt geschrieben ... !
Gruß Matthias

AW: Wert einfügen per Doppelklick
20.02.2008 21:29:00
Daniel
Hi
probier mal folgendes:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = False
If Not Intersect(Target, Range("E8:E38")) Is Nothing Then
cancel = true
Select Case Target.Value
Case ""
Target.Value = "9:00"
Case Else
Target.Value = ""
End Select
End If
Application.EnableEvents = True
End Sub


da ich es bisher noch nicht geschafft habe, bei einem Doppelklick mehr als eine Zelle anzuklicken, halte ich viel von deinem Makro für überflüssig.
Noch so als Tip:
- Um zu prüfen, ob mehr als eine Zelle selektiert wurde, kann man auch die Funktion SELECTION.CELLS.COUNT, bzw im Event-Gesteuerten Makro auch TARGET.CELLS.COUNT verwenden, dh :


if Target.Cells.Count > 1 then msgbox "es wurde mehr als eine Zelle selektiert"


noch ein Tip:
- die Schleife
For Each Z in Selection... ... Next
funktioniert auch, wenn nur eine Zelle selektiert ist, dh selbst wenn es möglich wäre, beim Doppelklick mehrere Zellen zu selektieren, wäre eine Unterscheidung ob eine oder mehrere Zellen nicht notwendig
und noch ein Tip:
- Gotos im Programmcode sollte man vermeiden:
diese Stelle


If Intersect(Target, Bereich) Is Nothing Then GoTo Ende
' Abbruch, wenn Aktion nicht im Zielbereich
Target.Value = "09:00"
Ende:


kannst du wesentlich eleganter so formulieren:


If Not Intersect(Target, Bereich) Is Nothing Then Target.Value = "09:00"
Gruß, Daniel


Anzeige
AW: Wert einfügen per Doppelklick
20.02.2008 21:56:01
mike49
Hallo Daniel,
entspricht im Prinzip dem von Hajo und es funktioniert. Der Fehler lag bei mir.
Danke für deine super Tipps!
Gruß
mike49

AW: Wert einfügen per Doppelklick
20.02.2008 22:34:00
Renee
Hi,
Auch dein Code, könnte man noch billiger haben:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("E8:E38")) Is Nothing Then Exit Sub
Target = IIf(Target = "", "9:00", "")
Cancel = True
End Sub


GreetZ Renée

AW: Wert einfügen per Doppelklick
20.02.2008 22:47:10
Daniel
Hi
ja, danke
IIF ist halt noch nicht in meinem Aktiven VBA-Wortschatz vorhanden.
Gruß, Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige