Hallo,
Zitat:wenn man zB. das Jahr 2024 einstellt und den 29.2.24 den es ja nicht gibt als Termin einträgt.
sagt wer? Da ist mein Kalender ganz anderer Meinung.
Eingaben 23 waren gemeint! Bereits korrigiert!
Er Kommentiert alle Termine wenn diese 2023 sind auch im Kalender Jahr 2024. Halt ohne bedingte Formatierung der Zellen.
ja das liegt an den nicht in den Zellen vorhandenen Datum (Jahr).
Da bleibt nur der Vergleich des Kalenderjahres in B2 mit dem Datum jeweiligen Datum im Listobject.
Anbei die Abfrage des Kalenderjahres in der Schleife.
[
attachment=50304]
Gruß Uwe
Irgendwie macht der mit dem geänderten Code bei meiner Datei keine Kommentare mehr!
Du hast das Kalenderjahr um eine Spalte verschoben
also die Abfrage des Kalenderjahres dann so:
Code:
If Tabelle1.Cells(2, 3) = Year(.ListObjects(1).DataBodyRange.Cells(i, 1)) Then .....
Aber ich sehe ein weiteres Problem. Wenn an einem Tag mehrere Termine anstehen, muss unten angefügt werden.
Änderungen siehe Datei.
[
attachment=50306]
Gruß Uwe
Besten Dank. Dass hab ich komplett übersehen.
Reicht auch für heute.
Schönen Weihnachten wünsche ich Euch!
Ich habe folgende bedingte Formatierung:
Code:
=UND(VERGLEICH(DATUM($B$2;12;U42);$AC$9:$AC$47;0);VERGLEICH(DATUM($B$2;12;U42);$AF$9:$AF$47;0))
AC9:AC47 = sind Feiertage
AF9:AF47 = sind Termine
Wie kann ich diese Formel um HEUTE() ändern?
Die bisherige Formel schaut nach Feiertagen und Terminen und Formatiert die Zelle
(Rot Hintergrund - Blau Schrift)
Jetzt soll er nach Terminen Schauen und HEUTE()
Formatierung zb. Grün Hintergrund für HEUTE() - Blau Schrift wenn Termin
Vielen Dank
Ich habe ketzt folgenden Kommentarcode:
Der funzt auch soweit, dass er alle nicht existierendes Datum erkennt.
Wie kann ich diesen Code anpassen, dass er bis auf die nicht existierenden Datums alle anderen Kommentare setzt?
So wie der Code jetzt ist, setzt er keine Kommentare!
Danke für Eure Hilfe
Code:
Sub TerminKommentarfeld()
Worksheets("Kalender").Unprotect 'Blattschutz aufheben
Dim cell As Object
Dim rngDate As Date
Dim rngTermin As Range
Dim Monat$
Dim strgComm$
Dim i&
With Tabelle1
For Each cell In Range("rng_Datum").Cells
If Not cell.Comment Is Nothing Then cell.Comment.Delete
Next
For i = 1 To .ListObjects(1).DataBodyRange.Rows.Count
If .ListObjects(1).DataBodyRange.Cells(i, 1) <> "" And .ListObjects(1).DataBodyRange.Cells(i, 2) <> "" And _
.ListObjects(1).DataBodyRange.Cells(i, 3) <> "" Then
With .ListObjects(1).DataBodyRange
'eingefügter Code
If IsDate(.Cells(i, 1)) = False Then
MsgBox .Cells(i, 1) & " ist kein gültiges Datum!" & Chr(10) & Chr(10) & "Bitte korrigieren!"
Else
'eingefügter Code
strgComm = "Datum: " & .Cells(i, 1) & Chr(10) & "Wann: " & Format(.Cells(i, 2), "hh:mm") & _
" Uhr" & Chr(10) & "Was: " & .Cells(i, 3)
'eingefügter Code
End If
'eingefügter Code
End With
'eingefügter Code
If .ListObjects(1).DataBodyRange.Cells(i, 1) = False Then
'eingefügter Code
rngDate = .ListObjects(1).DataBodyRange.Cells(i, 1)
Monat = "rng_" & Month(.ListObjects(1).DataBodyRange.Cells(i, 1))
If Tabelle1.Cells(2, 2) = Year(.ListObjects(1).DataBodyRange.Cells(i, 1)) Then
Set rngTermin = .Range(Monat).Find(Day(rngDate), LookIn:=xlValues, LookAt:=xlWhole)
If Not rngTermin Is Nothing Then
If rngTermin.Comment Is Nothing Then rngTermin.AddComment
rngTermin.Comment.Text Text:=strgComm
End If
End If
'eingefügter Code
End If
'eingefügter Code
End If
strgComm = ""
Next i
End With
Worksheets("Kalender").Protect 'Blattschutz aufheben
End Sub
Hallo,
der Code geht in einer Schleife Zeile für Zeile das Listobject (formatierte Tabelle) durch und trägt diese jeweilige Zeile in die zutreffende Zelle.
29.2.23 wird nicht ausgeführt. da dieses Datum nicht 2023 existiert.
Ergo dieser Code von mir sucht nicht nach "nicht vorhandenen Terminen" sondern klappert in einer Schleife vorhandene Terminen mit real existierenden Datum ab.
Gruß Uw