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

mehrere Offset bei Target.Column

mehrere Offset bei Target.Column
16.02.2022 12:39:54
Oliver
Hallo an Alle im Forum,
ich habe ein Problem. In einem Tabellenblatt werden in Spalte "D" Eintragungen gemacht. In diesem Moment der Eingabe möchte ich in den Nachbarzellen in Spalte "C" und "B" unterschiedliche Automatikeingaben ausführen. In Spalte "C" soll der eingeloggte User und in Spalte "B" das aktuelle Datum als Wert eingetragen werden.
Ich habe das Worksheet_Change Ereignis im Tabellenblatt ausgewählt, da mir aktuell kein besseres einfiel.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim spalte, zeile As String
ActiveSheet.Unprotect Password:="*****"
If Target.Column = 4 Then Target.Offset(0, -1) = Application.UserName
Target.Offset(0, 0).Activate
ActiveSheet.Protect Password:="*****"
End Sub
Sobald ich nun eine zweite "IF" Bedingung für Spalte "B" mit der gleichen Target.Column-Anweisung einfüge, bekomme ich Fehlermeldungen (Laufzeitfehler 1004):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim spalte, zeile As String
ActiveSheet.Unprotect Password:="*****"
If Target.Column = 4 Then Target.Offset(0, -1) = Application.UserName
Target.Offset(0, 0).Activate
If Target.Column = 4 Then Target.Offset(0, -2).Value = Date
ActiveSheet.Protect Password:="*****"
End Sub
Egal wie ich die Anweisung für Spalte "B" auch schreibe, es folgt immer der Laufzeitfehler. Verbundene Zellen, Diagramme, die als Fehler in Betracht kommen könnten sind nicht enthalten. Bei einer Bedingung geht es gut, sobald ich die zweite hinzubringe kommt der Laufzeitfehler und finde keine Lösung
Wäre sehr dankbar für Eure Unterstützung.
Oliver

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Offset bei Target.Column
16.02.2022 12:50:32
EtoPHG
Hallo Oliver,
Das Verändern von Zellinhalten während des _Change-Ereignis führt zu Aufruf desselben und der Änderung des Target.
Also so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
Application.EnableEvents = False
Unprotect Password:="*****"
Target.Offset(0, -1) = Application.UserName
Target.Offset(0, -2).Value = Date
Protect Password:="*****"
Application.EnableEvents = True
End If
End Sub
Gruess Hansueli
AW: mehrere Offset bei Target.Column
16.02.2022 13:15:25
Oliver
Hallo Hansueli,
vielen herzlichen Dank!
Genau das ist es.
Grüße
Oliver
Anzeige
AW: mehrere Offset bei Target.Column
16.02.2022 12:53:38
Daniel
Hi
pack das doch in ein IF, ist ja die gleiche Bedingung.
und damit das Makro sich beim Einfügen der Werte nicht selbst auslöst, verwendet man noch Application.EnabelEvents = False/True, damit bei einer Änderung die der Code durchführt, nicht das Change-Eventmakro erneut ausgeführt wird.
Man darf nur hinterher das einschalten nicht vergessen, denn diese Einstellung bleibt bei Makro-Ende erhalten und dann funktioniert den Blatt nicht mehr.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim spalte, zeile As String
ActiveSheet.Unprotect Password:="*****"
If Target.Column = 4 Then
Application.EnableEvents = False
Target.Offset(0, -1) = Application.UserName
Target.Offset(0, -2).Value = Date
application.EnableEvents = True
end if
ActiveSheet.Protect Password:="*****"
End Sub
Gruß Daniel
Anzeige
AW: mehrere Offset bei Target.Column
16.02.2022 13:16:26
Oliver
Hallo Daniel,
Hansueli hatte auch schon die gleiche Lösung.
Dennoch vielen herzlichen Dank für die Hilfe!
Genau das ist es.
Grüße
Oliver

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige