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

Doppelklick-Makro erweitern

Doppelklick-Makro erweitern
02.02.2018 21:54:30
mike49
Hallo zusammen,
ich habe ein Makro, dass bei Doppelklick im Bereich B12:B37 die Uhrzeit "07:30" einträgt und bei erneutem Doppelklick den Eintrag wieder löscht. Das funktioniert auch:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' ActiveSheet.Unprotect
If Not Intersect(Target, Range("B12:B37")) Is Nothing Then
Cancel = True
If Target = "" Then
Select Case Target.Column
Case 2
Target = "07:30"
'Target.Font.Color = -16776961
'                    Target.Offset(0, 6) = CDate("1:58")
End Select
Else
Target = ""
'            Target.Offset(0, 6).ClearContents
'            Target.Font.ColorIndex = xlAutomatic
End If
End If
'  ActiveSheet.Protect
End Sub

Wie kann man dieses Makro erweitern, dass manuell gemachte Einträge in den Bereichen A12:A37 und C12:C37 durch Doppelklick gelöscht werden?

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelklick-Makro erweitern
03.02.2018 05:23:36
Matthias
Hallo
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B12:B37")) Is Nothing Then
Cancel = True
Target = IIf(Target = "", "07:30", "")
Target.Offset(, -1) = ""
Target.Offset(, 1) = ""
End If
End Sub
Select Case ist total überflüssig, das der Bereich der Wirksamkeit schon auf Spalte("B") beschränkt ist.
Gruß Matthias
Doppelklick-Makro erweitern
03.02.2018 06:38:16
mike49
Hallo Matthias,
sorry, aber das funktioniert leider nicht.
Gruß
mike49
AW: Doppelklick-Makro erweitern
03.02.2018 07:08:34
Hajo_Zi
Hallo Mike,
das geht schon.
Es werden die Einträge in Spalte A und C gelöscht.
Was geht nicht?

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung....."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Doppelklick-Makro erweitern
03.02.2018 07:41:09
mike49
Hallo Matthias,
wenn ich durch Doppelklick im Bereich B12:B37 "07:30" eingefügt habe, werden durch erneuten Doppelklick auch die entsprechenden Einträge in A12:A37 und C12:C37 gelöscht. So wollte ichs aber nicht. Es soll nur der jeweilige Eintrag in der Spalte durch Doppelklick gelöscht werden. Der "07:30" Eintrag durch Doppelklick und das Löschen durch erneuten Doppelklick im Bereich B12:B37 soll hiervon unberührt bleiben.
Ich hab's jetzt so erweitert und es funktioniert teilweise:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' ActiveSheet.Unprotect
If Not Intersect(Target, Range("B12:B37", "C12:C37")) Is Nothing Then
Cancel = True
If Target = "" Then
Select Case Target.Column
Case 2
Target = "07:30"
'Target.Font.Color = -16776961
'                    Target.Offset(0, 6) = CDate("1:58")
End Select
Else
Target = ""
'            Target.Offset(0, 6).ClearContents
'            Target.Font.ColorIndex = xlAutomatic
End If
End If
'  ActiveSheet.Protect
End Sub

Allerdings hätte ich noch gerne das Löschen der Einträge durch Doppelklick um die Bereiche "A12:A37" und "O23:O34" erweitert.
Aber sobald ich das noch zwischen die Klammer eintrage, kommt die Meldung: "Fehler beim Kompilieren. Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft" Das Wort Range ist blau unterlegt.
Wie bringe ich die Bereiche da noch dazu?
Gruß
mike49
Anzeige
Uups. Ich habe . . .
03.02.2018 07:58:44
mike49
. . . "vor lauter Bäumen den Wald nicht gesehen!" ;)
Habe das jetzt so korrigiert:
.
.
If Not Intersect(Target, Range("A12:C42", "O23:O34")) Is Nothing Then
.
.
Danke für eure Hilfe.
Gruß
mike49
kleiner Tipp noch ...
03.02.2018 12:18:10
Matthias
Hallo
Je mehr Du "Einrückst" umso wahrscheinlicher wird es, das die Forensoftware
einen Zeilenumbruch einfügt.
Dies macht u.U. den Code schlechter lesbar.
Gruß Matthias
AW: und noch 1en Tipp
04.02.2018 07:09:54
Luschi
Hallo mike49,
Du hast eine kleine Ungenauigkeit im Code mit gravierenden Auswirkungen:
- Vergleiche den Unterschied zwischen
- Range("A12:C42", "O23:O34") und
  Range("A12:C42, O23:O34")

MsgBox Range("A12:C42", "O23:O34").Address & vbCrLf & _
Range("A12:C42, O23:O34").Address
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige