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

brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum

brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 15:48:33
Steffen Möller
Hallo an alle Profis, ich hoffe, ihr könnt mir helfen, ich habe nämlich absolut keine Ahnung.

Dieses Thema ist viel gefragt, das weiß ich und ich habe auch schon Vieles dazu gefunden, sogar eine Lösung, die für mich gut funktioniert. Allerdings benötige ich eine Anpassung des Codes, um die Funktionalität meines Dokumentes zu vervollständigen. Ich habe selbst versucht, den Code anzupassen, allerdings ohne Erfolg, da ich keinen Plan hab, was ich da eigentlich tue.

Folgendes ist die Situation:

Ich habe ein Dokument, in das verschiedene Mitarbeiter ihre Urlaubswünsche eintragen sollen. Das Dokument errechnet automatisch Nettourlaubstage und auch Überschneidungen der eingetragenen Zeiträume.
In Spalte C7:C41 wird das "von"-Datum des Urlaubszeitraumes eingetragen und in Spalte E7:E41 das "bis"-Datum.
Ich möchte, daß automatisch in Spalte AU7:AU41 das aktuelle Datum des Tages eingetragen wird, an dem der jeweilige Mitarbeiter seinen Urlaubswunsch einträgt. Dieses Datum soll dann fixiert sein und darf sich nur ändern, wenn der Mitarbeiter eine Änderung an seinem Eintrag vornimmt. Dann wird das Datum der Änderung eingetragen und fixiert.
Folgenden Code habe ich gefunden und schon für mich angepasst:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E7:E41")) Is Nothing Then Exit Sub
If Target.Value > "" Then
Target.Offset(0, 42).Value = Date
Else
Target.Offset(0, 42).ClearContents
End If
End Sub

Dieser Code funktioniert auch sehr gut, aaaaber...
Mit dieser Programmierung wird nur das Datum eingetragen oder geändert, wenn in Spalte E7:E41 etwas passiert.
Wenn in Spalte C7:C41 etwas geändert wird, wird kein Datum eingetragen.

Beispiel:

Der Mitarbeiter trägt in C7 (von) und E7 (bis) seinen Urlaubswunsch ein. In AU7 wird automatisch das aktuelle Datum eingetragen und bleibt fixiert.
Eine Woche später ändert der Mitarbeiter den Eintrag in E7. Es wird das aktuelle Datum in AU7 eingetragen und bleibt wieder fixiert.
Wenn aber der Mitarbeiter seinen Eintrag in C7 ändert, wird das aktuelle Datum nicht korrigiert, da in dem Code ja nur die Target Range E7:E41 angegeben ist.
Es soll natürlich auch dann das Datum angepasst werden, wenn in C7 eine Änderung erfolgt.

Wie gesagt, der Code funktioniert perfekt, solange es eine Änderung in E gibt.

Kann jemand bitte den Code so anpassen, daß der Datumseintrag sowohl bei Änderungen in E, als auch bei Änderungen in C erfolgt und zwar unabhängig von einander. D.h. es kann sein, daß beide Werte (C und E) geändert werden oder aber nur einer von beiden. In jedem dieser Fälle soll das Datum der Änderung eingetragen werden.

Vielen Dank für eure Hilfe. Ich hoffe, jemand weiß, wie das geht ;)

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 16:11:26
onur
If Intersect(Target, Range("E7:E41,C7:C41")) Is Nothing Then Exit Sub 
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 16:24:06
Steffen Möller
Vielen Dank onur, ich teste das mal.

Dazu gleich mal 'ne Frage: Bedeutet "E7:E41,C7:C41" E7:E41 und C7:C41 oder bedeutet es E7:E41 oder C7:C41 ?

Außerdem müsste bei Änderung in C der Offset 44 betragen, damit das Datum ebenfalls in AU7 eingetragen wird. D.h. es müssen zwei Offsets berücksichtigt werden...Offset 42 für Änderungen in E und Offset 44 für Änderungen in C.
Oder denke ich da falsch?
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 16:28:53
Steffen Möller
@ onur

Habs getestet, funktioniert nicht. :(
Anzeige
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 16:44:44
GerdL
Das ist eine unpräzise Mitteilung, mit der niemand etwas anfangen kann
( so wie "Auto ist kaputt"), Steffen.

Das Eventmakro läuft, wenn der erste oder zweite Bereich Wertänderungen erhält.

Probier mal.

Private Sub Worksheet_Change(ByVal Target As Range)


Dim C As Range


On Error GoTo ende

If Intersect(Target, Range("C7:C47,E7:E41")) Is Nothing Then Exit Sub

For Each C In Intersect(Target, Range("C7:C47,E7:E41"))
Application.EnableEvents = False
If C.Value > "" Then
C.Offset(0, 47 - C.Column).Value = Date
Else
C.Offset(0, 47 - C.Column).ClearContents
End If
Next
ende:
If Err.Number > 0 Then Err.Clear
Application.EnableEvents = True


End Sub

Gruß Gerd
Anzeige
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 18:15:12
Steffen Möller
Hallo Gerd,
vielen Dank für deine Antwort.

Ich teste das morgen mal, wenn ich wieder auf Arbeit bin.
Müsste ich nicht für den Offset 0, 44 eingeben? Von C aus ist doch der Offset bis AU 44 Schritte...oder hab ich da einen Denkfehler?
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 18:21:11
GerdL
47-5(Spalte E) = 42
47-3(Spalte C) = 44
Soweit dacore?
Gruß Gerd
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
01.11.2023 18:47:11
Steffen Möller
@ Gerd

Deine Rechnung ist natürlich korrekt.

Ich hatte nur gefragt, weil:
In meinem ursprünglichen Code ist ja die Range E7:E41 festgelegt und dann ein Offset von 0, 44. Mit diesen Werten wird das Datum automatisch in Spalte AU eingetragen.
Ich bin davon ausgegangen, daß das bedeutet, von der jeweiligen Zelle in E aus, wird das einzutragende Datum 0 Zeilen nach oben oder unten verschoben und 44 Spalten nach rechts...und landet damit in Spalte AU.

Darum hab ich mich über die 47 in deinem Code gewundert.

Wie gesagt, ich teste das morgen mal und berichte dann.

Gruß
Steffen
Anzeige
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
02.11.2023 15:15:43
Steffen Möller
@Gerd

Ich hab deinen Code heute mal ausprobiert. Der Datumseintrag bei Änderungen in C oder in E funktioniert einwandfrei. Vielen Dank schon mal. Ob das Datum auch fixiert ist, sehe ich erst morgen, dazu gebe ich dann nochmal 'ne Rückmeldung.

👍 🙂
AW: brauche Hilfe bei Änderung eines VBA-Codes f. autom. Datum
03.11.2023 10:56:49
Steffen Möller
@ Gerd

Dein Code funktioniert perfekt, vielen lieben Dank.
Problem gelöst.
😊

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige