Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Keine Fhelermeldung beim Löschen von Zelleninhalte

Keine Fhelermeldung beim Löschen von Zelleninhalte
04.01.2017 19:13:03
Zelleninhalte
Hallo zusammen,
ich wüschne ein gesundes, Neues Jahr in die Runde.
Ich versuche jetzt schon seit 2 Tagen eine Lösung für mein Problem zu finden, schaffe es aber nicht. Folgender Fall:
Wenn in Spalte B ein Wert eingegeben wird, soll in der gleiche Zeile in Spalte A das Datum von heute gesetzt werden wenn die Zelle in Spalte A leer ist.
Das funktioniert soweit.
Allerdings erhalte ich eine Fehlermeldung, wenn ich mehrere Zellen aus Spalte B markiere und den Inhalt über "Entf" lösche. Wie schaffe ich es, die Fehlermeldung zu vermeiden?
If Not Intersect(Target, Range("B3:B22551")) Is Nothing Then
If Target.Offset(0, -1).Value = "" Then Target.Offset(0, -1) = Date
End If
Vielen Dank für die Hilfe
Alexander

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
probier mal On Error Resume Next am Anfang oT
04.01.2017 19:16:54
Matthias
Keine Fhelermeldung beim Löschen von Zelleninhalte
04.01.2017 19:19:17
Zelleninhalte
Hallo Alexander,
Option Explicit                                     ' Variablendefinition erforderlich
Private Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies                                  *
'* 04.01.17                                    *
'* erstellt von HajoZiplies@web.de             *
'* http://Hajo-Excel.de/
Dim RaBereich As Range                          ' Variable für Bereich
Dim RaZelle As Range                            ' Variable für Zelle
Set RaBereich = Range("B3:B22551")              ' Bereich der Wirksamkeit
Set RaBereich = Intersect(RaBereich, Target)
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
With RaZelle
If .Offset(0, -1) = "" Then .Offset(0, -1) = Date
End With
Next RaZelle
'ActiveSheet.protect ("Passwort")
End If
Set RaBereich = Nothing                         ' Variable leeren
End Sub


Anzeige
AW: Keine Fhelermeldung beim Löschen von Zelleninhalte
04.01.2017 19:37:38
Zelleninhalte
Hi
zur Erklärung:
wenn du mehrere Zellen löschst, dann ist Target auch mehrere Zellen groß.
damit ist dann auch Target.Value kein Einzelwert mehr, sondern ein zweidimensionales Array.
das Target.Offset(0, -1).Value auch. Ein Array kannst du nicht mit einem Einzelwert ("") vergleichen, das führt zu einem Fehler (Generell musst du mit Array anders umgehen als mit Einzelwertvariablen)
die Lösung ist eine Schleife über die Zellen des Targets, so wie von Hajo gezeigt.
Die Schleife geht über jede einzelne Zelle und damit bekommst du wieder einen Einzelwert für .Value
Gruß Daniel
Anzeige
AW: Keine Fhelermeldung beim Löschen von Zelleninhalte
04.01.2017 20:19:31
Zelleninhalte
Hallo zusammen,
danke für die Erklärung. Das verstehe ich.
Die Passwort-Zeilen sind nicht zwingend, richtig?
Jetzt habe ich mehrere Bereiche (B3:B22551; F3:F22551; J3:J22551 usw.)
Wie muss ich das korrekt schreiben um alle Breiche in der Formel unterzubringen?
(Die Logik 1 Feld nach Links bleibt für alle Spalten gleich)
Vielen Dank!
AW: Keine Fhelermeldung beim Löschen von Zelleninhalte
04.01.2017 20:24:28
Zelleninhalte
Hi
das kannst du bei Hajos Code hier eingeben:
Set RaBereich = Range("B3:B22551,F3:F22551,J3:J22551")
je nach datenstrukur auch günstiger so:
Set RaBereich = Intersect(Range("3:22551"), Range("B:B,F:F,J:J"))
Gruß Daniel
Anzeige
AW: Keine Fhelermeldung beim Löschen von Zelleninhalte
04.01.2017 20:54:55
Zelleninhalte
Super, vielen Dank an alle!
AW: Keine Fhelermeldung beim Löschen von Zelleninhalte
04.01.2017 21:04:09
Zelleninhalte
Hallo,
so ganz passt es noch nicht.
Wenn ich Hajos Code anwende, wird beim Löschen von Zellinhalten aus Spalte B jetzt auch das Datum in Spalte A eingetragen. Das Datum sollte aber nur beim EINTRAGEN gesetzt werden.
Beim Code von Gerd wird das vorhandene Datum mitgelöscht, wenn Werte in B gelöscht werden. Das Datum sollte aber nur eingetragen, nicht gelöscht werden.
Viele Grüße
Alexander
Keine Fhelermeldung beim Löschen von Zelleninhalte
05.01.2017 05:48:27
Zelleninhalte
Hallo Alexander,
Eine Prüfung ob Razelle ="" und der entsprechende Code dürfte nicht das Problem sein.
Laut Deinem ersten Beitrag war Dein Code ok, nur die Fehlermeldung sollte beseitigt werden und das habe ich gemacht.
Gruß Hajo
Anzeige
AW: Date mit Worksheet_Change
04.01.2017 20:18:16
Gerd
Hallo Alexander,
so ist das m.E. sinnvoller.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, Zelle As Range
Set Bereich = Intersect(Target, Range("B3:B22551"))
If Bereich Is Nothing Then Exit Sub
For Each Zelle In Bereich
Zelle.Offset(, -1).Value = IIf(Zelle.Value  "", Date, "")
Next
Set Bereich = Nothing
End Sub
Gruß Gerd
AW: Date mit Worksheet_Change
04.01.2017 21:05:13
Alexander
Hallo Gerd,
vielen Dank für den Code. Hier ist das Problem, dass das vorhandene Datum mitgelöscht wird, wenn Werte in Splate B gelöscht werden. Das Datum sollte aber nur eingetragen, nicht gelöscht werden.
Wie kann ich den Code abändern?
Vielen Dank
Alexander
Anzeige
AW: Date mit Worksheet_Change
04.01.2017 21:44:14
Daniel
Hi
im Prinzip so:
if Zelle.Value  "" then If Zelle.Offset(0, -1) = "" then Zelle.Offset(0, -1).Value = Date
Gruß Daniel
AW: Date mit Worksheet_Change II
04.01.2017 21:58:58
Gerd
Hallo Alexander!
Für mich wäre das Mitlöschen des Datums ein Vorteil, aber
""Wünsch dir was"":
erster Eintrag in leere Zelle im Bereich u. Datumszelle ist leer -- Date in Datumszelle einfü _
gen
erster Eintrag in leere Zelle im Bereich u. Datumszelle ist gefüllt ->-?
zweiter Eintrag in diese Zelle im Bereich
u. Daumszelle ist schon bzw. noch gefüllt -- ?
u. Daumszelle ist leer -- ?
diese Zelle wird geleert -- Datumszelle wird nicht geändert
Gruß Gerd
Anzeige
AW: Date mit Worksheet_Change II
04.01.2017 23:24:33
Alexander
Hallo Gerd,
besten Dank:
erster Eintrag in leere Zelle im Bereich u. Datumszelle ist leer -- Date in Datumszelle einfügen
erster Eintrag in leere Zelle im Bereich u. Datumszelle ist gefüllt -- nichts ändern
zweiter Eintrag in diese Zelle im Bereich
u. Daumszelle ist schon bzw. noch gefüllt -nichts ändern
u. Daumszelle ist leer -- Datum einsetzen
diese Zelle wird geleert -- Datumszelle wird nicht geändert
AW: Date mit Worksheet_Change II
04.01.2017 23:33:53
Alexander
Funktioniert aber mit dieser Zeile:
if Zelle.Value "" then If Zelle.Offset(0, -1) = "" then Zelle.Offset(0, -1).Value = Date
Danke an alle!

326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige