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

Formel/Makro zur Datumsfixierung

Formel/Makro zur Datumsfixierung
11.03.2014 10:24:23
Kertesz
Hallo,
ich habe schon bezüglich Datumsfixierung im Forum gesucht, doch keine richtige Lösung bezüglich meines Problems gefunden:
Ich möchte in Zelle B4 (bzw. ganze Spalte B) das aktuelle Bearbeitungsdatum, welches dann fixiert wird, angezeigt bekommen, wenn in die Zelle AB4 (bzw. ganze Spalte AB) ein Wert eingegeben wird.
Dazu habe ich folgende Formel verwendet:
=WENN(AB4="";"";WENN(ZELLE("TYPE";B4)="v";B4;HEUTE()))
Nun habe ich aber auch überlegt, folgendes Makro zu verwenden, welches ich in den Code des Tabellenblattes einfügen würde:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 28 Then
If Len(Trim(Cells(Target.Row, 28).Text)) > 0 Then
Cells(Target.Row, 2).Value = Date
End If
End If
End Sub

Folgendes Problem habe ich dabei: Im Code des Tabellenblattes ist bereits folgender Code hinterlegt, damit ein Makro bei jeder Änderung der Zellenauswahl durchgeführt wird:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
E_Mail_senden
End Sub

Wie kann ich dieses Problem lösen? Vielen Dank im Voraus!

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 10:31:57
EtoPHG
Hallo,
Ich sehe kein Problem. Die beiden Ereignisse sind ja unabhängig voneinander. Was ich allerdings nicht nachvollziehen kann, ist dass man bei jedem SelectionChange ein Mail verschickt. Das wird zu einer Spam-Schleuder par excellence.
Also: Was bitte ist dein Problem?
Gruess Hansueli

AW: Formel/Makro zur Datumsfixierung
11.03.2014 10:40:53
Kertesz
Hallo,
danke für die Antwort! Mit der Selection Change habe ich das so gemacht, dass nur immer eine Email geschickt wird und das ist auch nicht mein Problem!
Meine Probleme sind folgende:
1. Stimmt die Excel Formel um das von mir gewollte abzubilden?
2. Stimmt das Makro?
3. Wie kann ich das Makro, welches mir meinen gewollten Sachverhalt abbilden soll, in den Code des Tabellenblattes einfügen, da hier ja bereits ein Code hinterlegt ist?

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 10:58:41
EtoPHG
Hallo,
Zu 1.: Keine Ahnung, probiers doch einfach aus.
Zu 2: So wie es aussieht ja. Aber ich bau nicht deine Mappe nach. Du musst schon in der Lage sein, das selbst zu testen!
Zu 3: In einer Tabelleklasse können im Prinzip beliebig viel Prozeduren/Funktionen stehen. Die möglichen Ereignis-Prozeduren (siehe Dropdown im VBE rechts oben, bei Auswahl von "Worksheet" im linken Dropdown) ebenfalls. Bei diesen müssen die Prozedurnamen (und Parameter) so vorgeben sein, wie sie bei Auswahl aus dem rechten Dropdown eingefügt werden.
Gruess Hansueli

AW: Formel/Makro zur Datumsfixierung
11.03.2014 10:44:25
Klaus
Hallo Hansueli,
das mit der "Spam-Schleuder" wird hier bereits behandelt (und gelöst):
https://www.herber.de/forum/messages/1352886.html
Hallo Kertesz,
Das geht so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 28 Then
If Len(Trim(Cells(Target.Row, 28).Text)) > 0 Then
Cells(Target.Row, 2).Value = Date
End If
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
E_Mail_senden
End Sub
Die beiden haben nichts miteinander zu tuen und können einfach untereinander stehen.
Grüße,
Klaus M.vdT.

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 11:08:18
Kertesz
Hallo,
danke für die Antwort, hat mir sehr geholfen!
Eine Frage hätte ich noch: Ist die Excel Formel soweit korrekt um meinen Sachverhalt abzubilden?
Vielen Dank nochmal!

AW: Formel/Makro zur Datumsfixierung
11.03.2014 11:32:40
Klaus
Hi Kertesz,
Ist die Excel Formel soweit korrekt um meinen Sachverhalt abzubilden?
Niemand kennt deinen Sachverhalt. Deine Erklärung ist mangelhaft, es gibt keine Musterdatei. Was erwartest du als Antwort?
Und wozu die Formel, wenn du ein VBA hast das funktioniert?
Grüße,
Klaus M.vdT.

AW: Formel/Makro zur Datumsfixierung
11.03.2014 11:32:52
UweD
Hallo
Zu Formel:
Wenn du deine Formel in B4 einstellst, liefert sie einen Zirkelbezug.
=WENN(GLÄTTEN(AB4)="";"";HEUTE()) würde das Ergebnis ähnlich dem dem Makro liefern.
- Ein Nachteil zu VBA ; das Datum ist NICHT fix. Öffnest du die Datei morgen, ist das morgige Datum drin
- Vorteil zu VBA ; löschst du in AB was, bliebt das alte Datum stehen. (Das Rücksetzen kann aber in dem Makro eingebaut werden)
Gruß UweD

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 11:42:48
Kertesz
Hallo,
nochmal danke für die Antworten!
Heißt das jetzt also, dass ich nur die Formel oder den Makro benötige? Oder beides? Lösche ich nämlich die Formel in einer der Zellen in Spalte B und lass dann das Makro laufen, wird nicht das aktuelle Datum angezeigt...Vielen Dank schon im Voraus!!

AW: Formel/Makro zur Datumsfixierung
11.03.2014 11:52:39
EtoPHG
Hallo,
Weisst du überhaupt, was du machst?
Zitat: Lösche ich nämlich die Formel in einer der Zellen in Spalte B und lass dann das Makro laufen, wird nicht das aktuelle Datum angezeigt...
Welches Makro? Die Ereignisprozedur Worksheet_Change kannst du nicht einfach so laufen lassen. Sie wird automatisch gestartet, wenn du eine Zelländerung vornimmst. Da du aber beim Löschen der Formel eine Zelle in Spalte B änderst, wirkt der (innere) Code nicht, da er ja nur auf Änderung in Zellen der Spalte AB (28) reagiert.
Also nochmals: WAS genau willst du alles erreichen?
Gruess Hansueli

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 12:16:09
Kertesz
Hallo,
nochmal sorry für meine komplizierte Erklärung. Trotzdem danke für die Antworten mein Makro läuft jetzt!
Allerdings habe ich mit dem folgenden Code noch folgendes Problem:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 29 Then
If Len(Trim(Cells(Target.Row, 29).Text)) > 0 Then
Cells(Target.Row, 2).Value = Date
End If
End If
End Sub
Wenn ich jetzt einen Wert in Spalte AC eingebe, zeigt es mir in Spalte B das aktuelle Datum. Lösche ich aber nun den Wert wieder aus Spalte AC bleibt das Datum erhalten. Wie ist es möglich, dass das Datum beim Löschen des Wertes in Spalte AC auch nicht mehr zu sehen ist?

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 12:55:17
UweD
Hallo nochmal
so....
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
If Target.Column = 29 Then '29 =AC
Application.EnableEvents = False
If Target.Count = 1 Then
If Trim(Target)  "" Then
Target.Offset(, -27) = Date
Else
Target.Offset(, -27).ClearContents
End If
Else
MsgBox "nur eine Zelle bearbeiten"
Target.ClearContents
End If
End If
Fehler:
Application.EnableEvents = True
End Sub

Gruß UweD

wozu das enableevents, ...
11.03.2014 12:59:03
Klaus
... UweD?
wenn durchs Makro in Spalte 2 (oder in Spalte -27) etwas geändert wird, bleibt das doch schon im
If Target.Column = 29 Then hängen und verhindert so die Schleife.
Das es in ein On-Change Makro fast aus Prinzip rein gehört ist mir klar, aber ich befürchte mit diesen Kleinigkeiten überforderst du das Level des TE, oder?
Grüße,
Klaus M.vdT.

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 12:55:54
Klaus
bleibt das Datum erhalten
Warum sollte es auch nicht erhalten bleiben? Du hast ja ausschließlich die Ansage an VBA, ein Datum einzutragen wenn eine Änderung erfolgt und der geglättete Zelleninhalt länger als null Zeichen ist.
Soll bei 0 Zeichen das Datum in B gelöscht werden, braucht das eine eigene Anweisung. Im konkreten Fall kann man die einfach als ELSE an die bestehende Anweisung dranhängen.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 29 Then
If Len(Trim(Cells(Target.Row, 29).Text)) > 0 Then
Cells(Target.Row, 2).Value = Date
    else
Cells(Target.Row, 2).Value = ""
End If
End If
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 13:01:06
EtoPHG
Hallo,
Das geht dann so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 29 Then
If Len(Trim(Cells(Target.Row, 29).Text)) > 0 Then
Cells(Target.Row, 2).Value = Date
Else
Cells(Target.Row, 2).Clearcontens
End If
End If
End Sub
Gruess Hansueli

AW: Formel/Makro zur Datumsfixierung
11.03.2014 13:01:07
EtoPHG
Hallo,
Das geht dann so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 29 Then
If Len(Trim(Cells(Target.Row, 29).Text)) > 0 Then
Cells(Target.Row, 2).Value = Date
Else
Cells(Target.Row, 2).Clearcontens
End If
End If
End Sub
Gruess Hansueli

Anzeige
AW: Formel/Makro zur Datumsfixierung
11.03.2014 13:50:03
Kertesz
Danke nochmal für eure Antworten!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige