Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: wenn Eintrag in Zelle, dann Datum

wenn Eintrag in Zelle, dann Datum
05.03.2021 10:01:06
Marc-David
Hallo zusammen,
ich benutze die Formel
=WENN($A1=0;"";WENN(ODER(F1"";E1"";D1"";C1"");"";WENN($A1"";VERKETTEN("CW";" "; ISOKALENDERWOCHE(HEUTE());"")))) 
meine Idee war damit, wenn ich in Zelle 1 etwas schreibe erscheint die Kalenderwoche des Eintrags in der Zelle, wenn dann in F1, E1, D1 oder C1 etwas geschrieben wird, verschwindet diese.
Meine Frage ist aber, mit meiner Formel wird immer die aktuelle Kalenderwoche geschrieben oder? Nicht die zum Zeitpunkt des Eintrags. Also steht nächste Woche dann statt Kalenderwoche 9 Kalenderwoche 10 in der Zelle.
Kann man die Formel ändern, dass Kalenderwoche 9 stehen bleibt oder braucht man dafür ein Macro?
Viele Grüße
MD

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn Eintrag in Zelle, dann Datum
05.03.2021 10:13:18
Marc-David
Ein Zusatz noch, kann man das dann im Format "cw 09.21" ausgeben? Also Kalenderwoche 9 im Jahr 2021.
Besten Dank,
MD

AW: wenn Eintrag in Zelle, dann Datum
05.03.2021 10:29:06
Marc-David
Mit
=WENN($A17=0;"";WENN(ODER(F17"";E17"";D17"";C17"");"";WENN($A17"";VERKETTEN("CW";" "; ISOKALENDERWOCHE(HEUTE());" ";JAHR(HEUTE());"")))) 
generiere ich jetzt "cw 9 2021". Problem ists weiterhin aber noch, dass ich mit "heute()" arbeite, deswegen denke ich mal, dass sich die Kalenderwoche immer ändert?
Und kann ich dies dann eben als "cw 09.21" ausgeben? Oder beispielsweise "cw 21.21" wenn es die 21. Kalenderwoche von 2021 ist?
Viele Grüße
MD

Anzeige
AW: wenn Eintrag in Zelle, dann Datum
05.03.2021 10:52:53
Marc-David
Hallo zusammen,
also ich habe mal etwas rumprobiert und das mit der Ausgabe ausreichend hinbekommen. Bzw. festgestellt, dass ich auch mit "CW 9 2021" arbeiten kann.
Nur ist das Formelproblem mit "heute()" noch :)
Viele Grüße
MD

AW: wenn Eintrag in Zelle, dann Datum
05.03.2021 11:02:54
Rudi
Hallo,
wenn die Woche erhalten bleiben soll, brauchst du definitiv ein Makro (Worksheet_Change-Event).
Gruß
Rudi

Anzeige
AW: wenn Eintrag in Zelle, dann Datum
05.03.2021 11:13:14
Marc-David
Hallo Rudi,
danke sehr, dann lese ich mich mal zu dem Thema ein :)
Viele Grüße
MD

AW: wenn Eintrag in Zelle, dann Datum
05.03.2021 11:44:45
Marc-David
Hallo Rudi,
also mein
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Target.Value > "0" Then Range("B1").Value = Date
If Target.Value 
funktioniert schon mal.
Aber wenn ich es über mehrere Zellen machen möchte,
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1:$A$20" Then
If Target.Value > "0" Then Range("B1:B20").Value = Date
If Target.Value 
#
kommt eine Fehlermeldung, geht das nicht so einfach?
Viele Grüße
MD

Anzeige
nein, so einfach geht das nicht
05.03.2021 13:36:39
Rudi
Hallo,
z.B.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.CountLarge = 1 Then 'nur 1 Zelle geändert
Select Case Target.Column
Case 1  'A
If Target  "" Then
'Eintrag in B
Cells(Target.Row, 2) = _
"CW " & Format(WorksheetFunction.IsoWeekNum(Date), "00") & _
"." & Year(Date) Mod 2000
End If
Case 3 To 6 'C:F
If Application.CountA(Cells(Target.Row, 3).Resize(, 4)) Then  'Inhalt vorhanden
Cells(Target.Row, 2) = "" 'B löschen
End If
End Select
End If
End Sub
Gruß
Rudi

Anzeige
AW: nein, so einfach geht das nicht
05.03.2021 13:49:15
Marc-David
Hallo Rudi,
vielen Dank, eine Verständnisfrage hätte ich noch, was müsste ich ändern wenn ich erst in einer anderen Zeile als 1 anfangen würde?
Viele Grüße
MD

AW: nein, so einfach geht das nicht
05.03.2021 14:36:52
Werner
Hallo,
z.B. so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 9 Then 'ab Zeile 10
If Target.CountLarge = 1 Then 'nur 1 Zelle geändert
Select Case Target.Column
Case 1  'A
If Target  "" Then
'Eintrag in B
Cells(Target.Row, 2) = _
"CW " & Format(WorksheetFunction.IsoWeekNum(Date), "00") & _
"." & Year(Date) Mod 2000
End If
Case 3 To 6 'C:F
If Application.CountA(Cells(Target.Row, 3).Resize(, 4)) Then
Cells(Target.Row, 2) = "" 'B löschen
End If
End Select
End If
End If
End Sub
Gruß Werner

Anzeige
AW: nein, so einfach geht das nicht
05.03.2021 14:53:31
Marc-David
Hallo Werner,
vielen Dank, das funktioniert super.
Bedanke mich und schönes Wochenende :)
Viele Grüße
MD

Gerne und Danke für die Rückmeldung. o.w.T.
05.03.2021 15:08:44
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige