Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1816to1820
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

Target unverträglich

Target unverträglich
01.03.2021 14:48:29
Bernd
Ich habe ein einfaches Makro, das bei einer Änderung in der Zeile in die erste Zelle (Spalte A) das Datum der Änderung einträgt. Geht soweit gut. Ich kann auch einzelne Zellen löschen. Wenn ich aber mehrere Zellen zusammen lösche, wird eine Unverträglichkeit gemeldet.
Wo liegt die?

Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Or Target.Column = 5 Or  _
Target.Column = 6 Or Target.Column = 7) And Target.Value  "" Then
Range("A" & Target.Row).Value = Date
Else
Exit Sub
End If
End Sub

Danke für Hinweise!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Target unverträglich
01.03.2021 14:51:48
Werner
Hallo,
weil du dann ein Array hast.
Soll denn das Datum in Spalte A wieder raus, wenn der Eintrag in den Spalten B bis H gelöscht wird?
Gruß Werner

AW: Target unverträglich
01.03.2021 17:35:08
Bernd
Danke, Werner! Arrays sind mir nur vertraut, wenn ich selber welche (Matrix) verwende. Wieso habe ich hier eins, dass die Typen unverträglich werden lässt? Und: Nein, das Datum soll ruhig stehen bleiben. Gruß Bernd

AW: Target unverträglich
01.03.2021 17:55:33
Daniel
Hi
Target ist der Zellbereich, der geändert wurde.
dieser kann eine einzelne Zelle sein, er kann aber auch mehrere Zellen umfassen (was z.B. beim löschen öfters vorkommt, weil man mehrere Zellen gemeinsam markiert und dann löscht)
wenn Target eine einzelne Zelle ist, dann ergibt Target.Value einen normalen Einzelwert (Text, Zahl)
wenn Target mehrere Zellen umfasst, dann ergibt Target.Value nunmal so ein Array, welches alle Werte des Zellbereichs enthält.
und ein Array kann man nicht mit einem Einzelwert vergleichen, daher der Fehler.
die einfachste Methode den Fehler zu vermeiden wäre von Target immer nur die erste Zelle zu nehmen und so das Array zu vermeiden: Target(1).Value
die weitern gängigen Mehtoden sind, vorab mal abzufragen, wie groß Target ist:
If Target.CountLarge = 1 Then
oder man lässt eine Schleife über die einzelnen Zellen von Target laufen und arbeitet dann mit der Schleifenvariable:
For Each Zelle in Target
Gruß Daniel

Anzeige
AW: Target unverträglich
01.03.2021 18:13:48
Bernd
Vielen Dank, Werner, für die nützlichen Hilfen!

Wäre Target(1, 1) da nicht sicherer? Denn ...
02.03.2021 07:03:43
lupo1
... man könnte ja auch anstelle eines Vektors eine Matrix markieren (und löschen) (wollen).

AW: Wäre Target(1, 1) da nicht sicherer? Denn ...
02.03.2021 07:52:23
Daniel
Probiers doch einfach aus.
Gruß Daniek

AW: Target unverträglich
01.03.2021 17:51:28
Rudi
Hallo,
.Value für mehrere Zellen führt zu dem Fehler.
Teste mal:

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 2 To 7 'Spalte B-G
If Target.Count = 1 Then  'nur 1 Zelle
If Target.Value  "" Then
Range("A" & Target.Row).Value = Date
End If
End If
End Select
End Sub

Gruß
Rudi

Anzeige
AW: Target unverträglich
01.03.2021 18:12:05
Bernd
Immer genau aufpassen, wenn man ein AND hat. Dein Vortschlag hat das Problem behoben. Im Übrigen ist ja Case sowieso eleganter. Danke, Rudi!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige