Anzeige
Archiv - Navigation
1284to1288
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

Löschen nur wenn ...

Löschen nur wenn ...
11.11.2012 11:15:10
walter
Guten Morgen,
ich möchte gern die letzte Eingabe löschen aber nur wenn
das Datum Heute aktuell ist.
Also in N10 steht ein Name und in L10 das Datum.
Wenn als das Datum kleiner ist soll Hinweis kommen "Sie können den
Eintrag vom (vielleicht das Datum anzeigen) nicht löschen.
Es sollte also immer gelöscht werden, da wo man die Zelle ausgewählt
hat. und dann natürlich die beiden Zellen LINKS daneben.
mfg walter

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

Betreff
Datum
Anwender
Anzeige
AW: Löschen nur wenn ...
11.11.2012 11:22:38
Hajo_Zi
Hallo Walter,
ich halte mich mal an den letzten Satz, der nicht zum Rest passt.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 And Target = "" Then
Application.EnableEvents = False
Range(Target.Offset(0, -1), Target.Offset(0, -2)) = ""
Application.EnableEvents = False
End If
End Sub

AW: Löschen nur wenn ...
11.11.2012 11:34:16
walter
Hallo Hajo,
danke.
Geht das auch ohne Change ?
Du hattest mir schon ein Makro mit Change gegeben, da wird das Datum
gesetzt.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 And Target = "" Then
Application.EnableEvents = False
Range(Target.Offset(0, -1), Target.Offset(0, -2)) = ""
Application.EnableEvents = False
End If
'------ das 1. --------------------------------
Dim rngRange As Range
Set rngRange = Intersect(Range("V4:V" & Rows.Count), Target)
If Not rngRange Is Nothing Then
Application.EnableEvents = False
rngRange.Offset(0, -2).FormulaR1C1 = "=IF(RC2"""",TODAY(),"""")"
rngRange.Offset(0, -2).Value = rngRange.Offset(0, -2).Value
Application.EnableEvents = True
End If
Application.EnableEvents = True
mfg walter

Anzeige
AW: Löschen nur wenn ...
11.11.2012 11:39:10
Hajo_Zi
Nein, Kopieren den neuen Code in Change.
Gruß Hajo

AW: Löschen nur wenn ...
11.11.2012 11:45:45
walter
Hallo Hajo,
das geht doch nicht, dann wird doch immer das Datum aktualisiert.
mfg walter

AW: Löschen nur wenn ...
11.11.2012 11:56:37
Hajo_Zi
Hallo Walter,
der zweite Code wird nicht ausgeführt bei Änderung in Spalte N.

Doch
11.11.2012 12:00:57
walter
Hallo Hajo,
sorry, habe die gleich Zelle bzw. Spalte wie für das Einfügen.
Ich möchte ja nur, weil die Tabelle geschützt ist, das dann der Name gelöscht werden kann
wenn das Datum aktuell ist. Also man hatte sich verschrieben.
Damit halt ausversehen keine andere Zelle gelöscht wird, soll geprüft
werden. Ist das Datum 2 Spalten nach links von Heute ja, wenn kleiner dann nicht.
mfg walter

Anzeige
AW: Doch
11.11.2012 12:02:37
Hajo_Zi
Hallo Walter,
Dazu kann ich nichts schreiben. Das habe ich nicht gesehen. Entgegen meiner Norm habe ich die Datei schon nachgebaut und der 2. Code wird nicht ausgeführt bei Änderung in Spalte N.
Gruß Hajo

mein Makro
11.11.2012 12:19:25
walter
Hallo Hajo,
danke erst mal das Du nachgestellt hast.
Hier mein Makro:
klappt leider nicht Warum auch immer.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 22 And Target = "" Then
Application.EnableEvents = False
Range(Target.Offset(0, -1), Target.Offset(0, -2)) = ""
Application.EnableEvents = False
End If
Selection.ClearContents
'------ das 1. --------------------------------
Dim rngRange As Range
Set rngRange = Intersect(Range("V4:V" & Rows.Count), Target)
If Not rngRange Is Nothing Then
Application.EnableEvents = False
rngRange.Offset(0, -2).FormulaR1C1 = "=IF(RC2"""",TODAY(),"""")"
rngRange.Offset(0, -2).Value = rngRange.Offset(0, -2).Value
Application.EnableEvents = True
End If
Application.EnableEvents = True
'----------------------------------------------------------------
mfg walter

Anzeige
AW: mein Makro
11.11.2012 12:34:49
Hajo_Zi
Hallo Walter,
mein Makro,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 And Target = "" Then
Application.EnableEvents = False
Range(Target.Offset(0, -1), Target.Offset(0, -2)) = ""
Application.EnableEvents = False
End If
Dim rngRange As Range
Set rngRange = Intersect(Range("V4:V" & Rows.Count), Target)
If Not rngRange Is Nothing Then
Application.EnableEvents = False
rngRange.Offset(0, -2).FormulaR1C1 = "=IF(RC2"""",TODAY(),"""")"
rngRange.Offset(0, -2).Value = rngRange.Offset(0, -2).Value
Application.EnableEvents = True
End If
End Sub
Gruß Hajo

Anzeige
Herzlichen Dank
11.11.2012 13:18:46
walter
Hallo Hajo,
danke für alles.
Bei mir klappt das nicht.
Schönen Sonntag noch...
mfg walter

AW: Herzlichen Dank
11.11.2012 13:30:35
Matze,Matthias
Hallo Walter
in deinem Makro If Target.Column = 22 And Target = "" Then
in Hajo Makro If Target.Column = 14 And Target = "" Then
was ist denn nur die richtige Spalte 14 oder 22 N oder V ?
Matze

AW: Herzlichen Dank
11.11.2012 14:21:49
Hajo_Zi
Hallo Walter,
ich habe Deinen Code aus dem Beitrag kopiert und damit getestet. Wie Matthias festgestellt hat sieht Dein letzter Code anders aus. Das ist eben der Vorteil, wenn man seinen Original Code in den Beitrag kopiert.
ich werde das nicht weiter testen, da ja schon mein erster Test umsonst war.
Gruß Hajo

Anzeige
Nochmals Danke habe dies ... -)
11.11.2012 14:44:52
walter
Hallo Hajo,
habe dieses Makro mal zusammengebastelt, es klappt.
Schönen Dank.
Sub MS_Eingabe_löschen()
If ActiveCell.Offset(0, -2) = Date Then
ActiveSheet.Unprotect (getStrPasswort)
Range(ActiveCell.Offset(0, -2), ActiveCell).Select
Range(ActiveCell.Offset(0, 2), ActiveCell).ClearContents
ActiveCell.FormulaR1C1 = ""
ActiveCell.Offset(0, 2).Select
' ActiveCell.Select
Else
MsgBox "Sie können nicht löschen,              " & Chr(13) _
& Chr(13) & "entweder Datum 
mfg walter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige