Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Rechtsklick Zellen leeren

VBA Rechtsklick Zellen leeren
10.01.2020 09:20:58
Nico264
Hallo zusammen,
ich habe ein kleines Problem mit VBA. Ich habe eine Datei in der offene Aufgaben dokumentiert werden.
Man kann jedem Thema auch ein Datum zuweisen, und zwar
Spalte I --> Due Date
Spalte J --> New Date
Spalte K --> closing date
In dieser Datei öffnet ein rechtsklick in diesen Spalten einen Kalender und man kann das Datum auswählen.
Nun kann es aber sein das etwas in Zeile D eingetragen ist, dadurch wird (nur wenn die Zelle I/J/K leer ist) über bedingte Formatierung das Wort Action eingetragen.
Mit diesem Codeabschnitt konnte ich bis jetzt die Zelle I/J/K anklicken, dann wurde zuerst der _ Inhalt gelöscht und danach der kalender wie gewohnt geöffnet.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
T_LOP_Worksheet_BeforeRightClick Target, Cancel
If Target.Column = 10 Then
Dim ComStr As String
Dim LineArr As Variant
Dim s As Long
Dim i As Long
If Target.Column = 10 Then Kalender_anzeigen
Cancel = True
End If
If Target.Column = 11 Then Kalender_anzeigen
Cancel = True
For Each c In ActiveSheet.Comments
With c.Shape
.TextFrame.AutoSize = True
End With
Next
'rechtsklick zelle leeren dann datum per kalender eintragen
Set SMenge = Application.Intersect(Range("I10:K5000"), Range(Target.Address))
If SMenge Is Nothing Then Exit Sub
Target = ""
Cancel = True
End Sub

Mein Ziel ist es jetzt aber, das ein Rechtsklick in entweder I/J/K nicht nur die angeklickte Zelle leert, sondern auch die zwei "übriggebliebenen". Jedoch soll bloß in der angeklickten Zelle der Kalender aufgehen.
Wie muss ich den Code jetzt anpassen, damit das passiert?
PS: Entschuldigt diesen zusammengeschusterten Code, ich bin ein absoluter Neuling in VBA und habe alles in eine bestehende Datei eingebaut, daher bin ich froh wenn ich überhaupt etwas zum laufen bekomme.
Vielen Dank und gruß
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Rechtsklick Zellen leeren
10.01.2020 09:43:18
Werner
Hallo Nico,
anstatt der Messagebox jeweils der Aufruf deines Kalenders.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Column
Case 9
Cancel = True
Target.Resize(, 3).ClearContents
MsgBox Target.Column
Case 10
Cancel = True
Target.Offset(, -1).Resize(, 3).ClearContents
MsgBox Target.Column
Case 11
Cancel = True
Target.Offset(, -2).Resize(, 3).ClearContents
MsgBox Target.Column
Case Else
End Select
End Sub
Gruß Werner
Anzeige
AW: VBA Rechtsklick Zellen leeren
10.01.2020 09:59:25
Nico264
hi Werner,
Danke für deine Antwort, aber das funktioniert nicht ganz wie ich es gerne hätte, da es alle Zellen der Jeweiligen Spalte leert und nicht nur die drei Spalten der aktuellen Zeile.
Ich hab das ganze nochmal überdacht und es macht mehr Sinn, das sich nur bei einem Rechtsklick in Zelle I der aktiven Zeile, die Zellen J und K leeren, da man sonst immer den vorher eingegeben Inhalt von I löschen würde wenn man zb in J ein Datum einträgt.
Kannst du mir erklären wie ich das entsprechend anpassen kann?
Gruß
Nico
Anzeige
AW: VBA Rechtsklick Zellen leeren
10.01.2020 10:09:28
Werner
Hallo Nico,
Danke für deine Antwort, aber das funktioniert nicht ganz wie ich es gerne hätte, da es alle Zellen der Jeweiligen Spalte leert und nicht nur die drei Spalten der aktuellen Zeile.
Nein, es werden nur die Zellen I,J und K geleert und nicht die ganze Zeile.
Wie das Makro, das du aktuell im Einsatz hast, jetzt aussieht weiß ich nicht. Benutze mal nur meinen Code, ohne noch zusätzlichen Code, dann siehst du, dass jeweils nur die Zellen I bis K geleert werden, egal in welcher Spalte du mit rechts klickst.
Und so werden jeweils nur die Spalten I und K geleert, egal ob du in I,J oder K mit rechts klickst.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Column
Case 9
Cancel = True
Target.ClearContents
Target.Offset(, 2).ClearContents
MsgBox Target.Column
Case 10
Cancel = True
Target.Offset(, -1).ClearContents
Target.Offset(, 1).ClearContents
MsgBox Target.Column
Case 11
Cancel = True
Target.ClearContents
Target.Offset(, -2).ClearContents
MsgBox Target.Column
Case Else
End Select
End Sub
Gruß Werner
Anzeige
AW: VBA Rechtsklick Zellen leeren
10.01.2020 10:22:42
Nico264
Hi Werner,
Danke dir! Läuft alles wie ich es will.
Schönes Wochenende
Gerne u. Danke für die Rückmeldung. o.w.T.
10.01.2020 11:30:01
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige