Clever-Excel-Forum

Normale Version: Kommentare in Kalender
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo liebe Gemeinde

Ich habe ein Kalender mit Terminen.
Nun suche ich eine Lösung, die Termine als Kommentar einzufügen.

Kommentar sollte lauten:
Datum: TT.MM.JJJJ
Wann: hh:mm
Was: Text aus Spalte

Danke für Eure Hilfe
Hallo,
 
die passende Zelle zu finden und etwas ins Kommentarfeld zu schreiben ist eigentlich simpel. Was die Sache umständlich macht ist, dass du in den Zellen kein Datum drinstehen hast. 
Man kriegt auch so was hin, wenn man jeden Monat einen Range zuweist. Das ist eigentlich nur noch Fleißarbeit und umständliches Codeschreiben.
 
Baue die Formeln so um, dass ein echtes Datum in der Zelle steht. Die Zelle formatierst du auf einstellige Tageszahl: "T".
Dann kann man den Range entweder mit .Find und wichtig Dateserial die zutreffende Zelle finden.
 
Ein Beispiel mit hänge ich ran.
[attachment=50260]

Gruß Uwe
Erstmal vielen Dank für den Hinweis/Vorschlag
Hallo liebe Gemeinde

Ich habe folgenden Code:
Code:
Sub kommentar()

Worksheets("Kalender").Unprotect 'Blattschutz aufheben

Dim Zelle As Range
Dim Bereich As Range
Dim Notiz As Comment

For Each Notiz In Tabelle1.Comments
Notiz.Delete
Next Notiz

Set Bereich = Tabelle1.Range("AJ1:AP47")

For Each Zelle In Bereich

If Zelle.Value = Range("AF9") Then

skommentar = "Was:" & vbLf & Range("AH9") & vbLf & vbLf & "Wann:" & vbLf & Format(Range("AG9"), "hh:mm") & " Uhr"
   
    'Zelle.Offset(0, 1).Value 'Zelle rechts daneben

Zelle.AddComment.Text skommentar

End If

Next Zelle

Worksheets("Kalender").Protect 'Blattschutz aufheben

End Sub

In der gefundenen Zelle rechts daneben stehen Koordinaten als Text zB. A1.
Wie bekomme ich es hin, dass das Kommentar in A1 gesetzt wird?

Danke
Hat sich erledigt!
Die Lösung: Range(Zelle.Offset(0, 1)).AddComment.Text skommentar
...letztendlich könnte man für einen Kalender, ganz ohne VBA und Excel bemühen zu müssen, den in Outlook integrierten Kalender nutzen. 
Aber ja, ich weiß Excel kann auch Bildbearbeitung und Musik und.... es ist vollkommen unerklärlich, weshalb die anderen Programme notwendig sind....
Folgender Code:
Code:
Sub kommentar()

Worksheets("Kalender").Unprotect 'Blattschutz aufheben

If MsgBox("Wollen Sie alle Termine aktualisieren?" & vbLf & vbLf & "Dies kann etwas dauern!", vbYesNo) = vbYes Then

Dim Zelle As Range
Dim Bereich As Range
Dim Notiz As Comment

For Each Notiz In Tabelle1.Comments
Notiz.Delete
Next Notiz

Set Bereich = Tabelle1.Range("AJ9:AW1000")

For Each Zelle In Bereich

'Termin 1
If Zelle.Value = Range("AF9") And Range("AF9") <> "" Then
skommentar1 = "Was:" & vbLf & Range("AH9") & vbLf & vbLf & "Wann:" & vbLf & Format(Range("AG9"), "hh:mm") & " Uhr"
Range(Zelle.Offset(0, 1)).AddComment.Text skommentar1
End If

'Termin 2
If Zelle.Value = Range("AF10") And Range("AF10") <> "" Then
skommentar2 = "Was:" & vbLf & Range("AH10") & vbLf & vbLf & "Wann:" & vbLf & Format(Range("AG10"), "hh:mm") & " Uhr"
Range(Zelle.Offset(0, 1)).AddComment.Text skommentar2
End If

'usw.


Next Zelle

MsgBox "Alle Termine wurden aktualisiert!"

End If

'Worksheets("Kalender").Protect 'Blattschutz aufheben


End Sub
Funzt soweit alles.
Nur wenn das Datum auf den 1. fällt, dann gibt es kein Kommentar.

Weiß jemand die Lösung?
...echt jetzt? Du definierst einen Bereich, benutzt eine Schleife und darin klapperst Du knapp 1000 Bedingungen einzeln ab?

Code:
Set Bereich = Tabelle1.Range("AJ9:AW1000")

For Each Zelle In Bereich

'Termin 1
If Zelle.Value = Range("AF9") And Range("AF9") <> "" Then
skommentar1 = "Was:" & vbLf & Range("AH9") & vbLf & vbLf & "Wann:" & vbLf & Format(Range("AG9"), "hh:mm") & " Uhr"
Range(Zelle.Offset(0, 1)).AddComment.Text skommentar1
End If

'Termin 2
If Zelle.Value = Range("AF10") And Range("AF10") <> "" Then
skommentar2 = "Was:" & vbLf & Range("AH10") & vbLf & vbLf & "Wann:" & vbLf & Format(Range("AG10"), "hh:mm") & " Uhr"
Range(Zelle.Offset(0, 1)).AddComment.Text skommentar2
End If

'usw.

Da solltest Du wirklich besser auf Outlook zurückgreifen. Oder noch besser einen Taschenkalender benutzen.

Die Schleife ließe sich wesentlich verkürzen:

Code:
For Each Zelle In Bereich

'Alle Termine
If Zelle.Value = Range("AF" & zelle.row) And Range("AF" & zelle.row) <> "" Then
skommentar1 = "Was:" & vbLf & Range("AH " & zelle.row ) & vbLf & vbLf & "Wann:" & vbLf & Format(Range("AG " & zelle.row ), "hh:mm") & " Uhr"
Range(Zelle.Offset(0, 1)).AddComment.Text skommentar1
End If
next
Hallo,
 
unabhängig von deinem bisherigen Stand, habe ich in deiner hochgeladenen Datei mal eine Prozedur basierend auf Ranges per Monat eingebaut.
Ansonsten gilt natürlich wie ich bereits weiter oben geschrieben hatte: Arbeite mit echtem Datum und Zelle(n) entsprechend formatiert.
[attachment=50300]
 
Gruß Uwe
Genial!

Hab es noch etwas umgebaut.

Allerdings ist mir aufgefallen, wenn man zB. das Jahr 2023 einstellt und den 29.2.23 den es ja nicht gibt als Termin einträgt. dann markiert er den 23.2.23

Kann man solche Fehler noch abfangen?
Seiten: 1 2 3 4