Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Geburtstage in Kalender als Kommentare einfügen

Geburtstage in Kalender als Kommentare einfügen
07.06.2004 16:02:33
Andy
Hallo,
ich habe einen Kalender, den ich als Dienstplan nutze. Die Feiertage sind
alle farbig enthalten wie man sehen kann und die Geburtstage wurden als
Modul wie die Feiertage gefertigt. Leider bekomme ich das nicht hin, dass
ich wie die Feiertage die Geburtstage zuordne und dann aber nicht farbig
wie die Feiertage sondern als Kommentar angezeigt bekomme. Dies benötige ich als VBA-Lösung. Vielleicht hat auch jemand eine Idee, wo ich die Geburtstage
einfach Pflegen kann (Vielleicht Extra-Tabelle mit Eingabemaske) und dann
trotzdem diese als Kommentar einfüge. Einen Auszug aus dem Geburtstagsmodul
und dem Kalender sehen Sie hier:
Userbild
und die Funktion im Modul

Die Datei https://www.herber.de/bbs/user/7166.jpg wurde aus Datenschutzgründen gelöscht

Vielleicht hat jemand eine Idee und kann mir helfen.
Gruß
Andy
AW: Geburtstage in Kalender als Kommentare einfüge
ChrisL
Hi Andy
Mit einer Funktion kannst du keine Formatierungen übergeben. Eine separate Tabelle mit den Namen und Geburtsdaten drängt sich zur Pflege schon auf und eine Eingabemaske darfst du selbstverständlich auch programmieren ;-)
Den Code für die Formatierung resp. Kommentar würde ich in ein normales Makro/Sub packen und mittels Worksheet_Activate Ereignis auslösen.
Gruss
Chris
AW: Geburtstage in Kalender als Kommentare einfüge
08.06.2004 07:16:44
Andy
Hallo Chris,
mit der Tabelle, das habe ich gemacht. Hier die Tabelle - Eingabemaske vorhanden.
Userbild
Nun suche ich aber ein Makro bzw. ein kleines ordentliches Modul,
wo er dann in dem Kalender
Userbild
die Geburtstage als Kommentare anzeigt. Noch schöner wäre natürlich,
wenn er noch gleich im Kommentar sagen würde, Geburtstag von XXX und
XXX wird XX Jahre alt. Wenn 1 Geburtstag und ein Feiertag ist, wie
kann man die beide anzeigen, ohne dass die Daten sich in einer Tabelle
befinden? Vielleich kann mir noch jemand helfen dazu.
Gruß
Andy
Anzeige
AW: Geburtstage in Kalender als Kommentare einfüge
ChrisL
Hi Andy
Damit ich die Tabellen nicht "nachbauen" muss, wäre ich um eine Beispieldatei dankbar.
Gruss
Chris
AW: Geburtstage in Kalender als Kommentare einfüge
08.06.2004 11:54:35
Andy
Hallo,
jetzt habe ich schnell einen Test abgeleitet und hoffe,
dass wir zusammen eine Lösung finden werden.
https://www.herber.de/bbs/user/7208.xls
Vielleicht gibt es eine ganz einfache Lösung. Man kann ja
denk ich mal viel machen aber ich bin auch noch nicht ganz
so weit mit dem VBA. Sicher kann man gleichzeitig auch die
Einträge in die Kommtare verbessern und gestalten (neue
Schriftart und Farbe - Es sollte auf alle Fälle Geburtstag
von: drin stehen. Wenn es möglich ist wäre natürlich das Alter
nicht schlecht (steht ja mit in der Geburtstagstabelle) aber
muss nicht unbedingt sein. Was ist eigentlich, wenn wie im Mai
2 Mann Geburtstag haben, wie managt man das?

Vielen Dank für an die unbekannten Helfenden!
Gruß
Andy
Anzeige
AW: Geburtstage in Kalender als Kommentare einfüge
ChrisL
Hi Andy

Private Sub Worksheet_Activate()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, iiZeile As Long
Application.ScreenUpdating = False
Set WS1 = Worksheets("Dienstplan")
Set WS2 = Worksheets("Geburtstage")
For iZeile = 1 To WS1.Range("A65536").End(xlUp).Row
If Not WS1.Cells(iZeile, 1).Comment Is Nothing Then WS1.Cells(iZeile, 1).ClearComments
Next iZeile
For iZeile = 4 To WS2.Range("B65536").End(xlUp).Row
For iiZeile = 2 To WS1.Range("A65536").End(xlUp).Row
If Day(WS1.Cells(iiZeile, 1)) = Day(WS2.Cells(iZeile, 3)) And _
Month(WS1.Cells(iiZeile, 1)) = Month(WS2.Cells(iZeile, 3)) Then Exit For
Next iiZeile
With WS1.Cells(iiZeile, 1)
If .Comment Is Nothing Then
.AddComment WS2.Cells(iZeile, 2).Value & ": " & WS2.Cells(iZeile, 4) & " Jahre"
Else
.Comment.Text Text:=.Comment.Text & Chr(10) & WS2.Cells(iZeile, 2).Value & ": " & WS2.Cells(iZeile, 4) & " Jahre"
End If
End With
Next iZeile
Application.ScreenUpdating = True
End Sub

Gruss
Chris
Anzeige
AW: Geburtstage in Kalender als Kommentare einfüge
08.06.2004 14:03:03
Andy
Hallo Chris,
das funktioniert ja super, vielen Dank. Ein Problem bleibt aber auf alle Fälle noch.
Jetzt werden meine Fraben für die A-Felder zurückgesetzt. Woran liegt das? Kann man
auch in den Kommentaren sagen: Zeige mir alle runden Geburtstage dick und rot oder
so an bzw.? Dieses Forum finde ich als eines der Besten, die es in Deutschland im Netz
gibt. Das klappt ja hier super.
Gruß
Andy
AW: Geburtstage in Kalender als Kommentare einfüge
08.06.2004 14:11:25
Andy
Hallo Chris,
hab den Fehler mit den Farben gefunden Sorry! Wenn du noch Zeit
hast, kannst du dir vielleicht auch noch mal meine Seite mit
der Frage : Zeige mir alle runden Geburtstage dick und rot oder
so an bzw.? ansehen und helfen. Kann man gleichzeitig auch beim
öffnen der Datei sagen, Achtung heute hat XXX Geburtstag und er
wird XX Jahre als und wenn es ein runder ist dann eine andere
Meldung die ungefähr besagt .... XXX Geburtstag - es ist ein runder
und er wird XX Jahre?
Jetzt habe ich aber genug geschrieben. Danke für deine großartige Hilfe.
Gruß
Andy
Gruß
Andy
Anzeige
AW: Geburtstage in Kalender als Kommentare einfüge
08.06.2004 14:11:41
Andy
Hallo Chris,
hab den Fehler mit den Farben gefunden Sorry! Wenn du noch Zeit
hast, kannst du dir vielleicht auch noch mal meine Seite mit
der Frage : Zeige mir alle runden Geburtstage dick und rot oder
so an bzw.? ansehen und helfen. Kann man gleichzeitig auch beim
öffnen der Datei sagen, Achtung heute hat XXX Geburtstag und er
wird XX Jahre als und wenn es ein runder ist dann eine andere
Meldung die ungefähr besagt .... XXX Geburtstag - es ist ein runder
und er wird XX Jahre?
Jetzt habe ich aber genug geschrieben. Danke für deine großartige Hilfe.
Gruß
Andy
Gruß
Andy
Anzeige
AW: Geburtstage in Kalender als Kommentare einfüge
ChrisL
Hi Andy
Das mit den Farben verstehe ich nicht ganz. Der Code beinflusst die Farben überhaupt nicht.
Man könnte sicher noch ergänzen betr. Fett etc. bei runden Geburtstagen. Fragt sich dann aber wieder, was geschieht wenn zwei Personen am selben Tag Geburtstag haben... der eine einen runden und der andere nicht.
With WS1.Cells(iiZeile, 1)
iiZeile = Zeilennummer...
Versuch mal selber etwas zu ergänzen. Mit dem Befehl "Mod" solltest du runde Geburtstage eruieren können.
Gruss aus der Schweiz
Chris
AW: Änderung an den Kommentarfeldern
08.06.2004 18:57:13
Andy
Hallo Chris,
ich habe erst einmal normale Änderungen machen wollen und habe damit ein kleines Problem.
Solltest du noch etwas Zeit haben würde ich mich freuen, wenn du dir das noch mal ansehen könntest. Die Originale hast du ja. Hier der von mir erstellte Code:
.Comment.Visible = True
With Selection.Font
.Name = "Tahoma"
.FontStyle = "Fett"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 9
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.Orientation = xlHorizontal
' .AutoSize = True
End With
With .Comment.Shape
.Fill.ForeColor.SchemeColor = 41
.Fill.Transparency = 0#
.Line.Weight = 0.75
' .Line.DashStyle = msoLineSolid
' .Line.Style = msoLineSingle
.Line.Transparency = 0#
.Line.Visible = msoTrue
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.BackColor.RGB = RGB(255, 255, 255)
.Shadow.ForeColor.SchemeColor = 6
End With
Die auskommentierten Zeilen habe ich nicht hinbekommen. Aus welchem Grund auch immer nimmt er diese nicht. Kannst du einen Fehler sehen? Wenn ich das in einer normalen Datei
mache, funktioniert das alles. Ich wollte vor allem alle Kommentarfelder etwas größer
haben. Mit dem einzeln hast du recht. Ich bin jetzt am Basteln, wegen der Meldung,
wer am laufenden Tag Geburtstag hat und vore allem ob er rund ist.
Anzeige
AW: Änderung an den Kommentarfeldern
ChrisL
Hi Andy
Sorry war grad nicht mehr so hilfreich wie auch schon, aber hatte viel um die Ohren. So ganz verstand ich auch nicht wie du den Code eingebaut hast. Du beziehst dich ja ganz am Anfang auf die "Selection" und bin nicht sicher, ob der Kommentar mit dem "Activate" auch selektiert wird.
Deinen Code würde ich noch auf das Minimum einschränken d.h. die Eigenschaften, welche sowieso schon Standard sind aus dem Code streichen.
Um ehrlich zu sein frage ich mich auch, ob die Formel für den Geburtstag so hinhaut. Sie bezieht sich auf das aktuelle Jahr, der Kalender geht aber bis ins neue Jahr. Ich glaub da wird er dann ein Jahr älter.
Hoffe der Input hilft dir weiter.
Gruss
Chris
Anzeige
AW: Änderung an den Kommentarfeldern
09.06.2004 21:04:11
Andy
Hallo Chris,
das Problem des Jahres habe ich gelöst. Nur mit der Formatierung habe ich noch Probleme.
Jetzt sieht das so aus:

Sub Notiz_Geburtstag()
Dim Alter As Byte
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, iiZeile As Long
Application.ScreenUpdating = False
Set WS1 = Worksheets("Dienstplan")
Set WS2 = Worksheets("Geburtstage")
'Selection.ShapeRange.ScaleWidth 1.74, msoFalse, msoScaleFromTopLeft
ActiveSheet.Unprotect Password:=""
For iZeile = 1 To WS1.Range("A65536").End(xlUp).Row
If Not WS1.Cells(iZeile, 1).Comment Is Nothing Then WS1.Cells(iZeile, 1).ClearComments
Next iZeile
For iZeile = 4 To WS2.Range("B65536").End(xlUp).Row
For iiZeile = 2 To WS1.Range("A65536").End(xlUp).Row
If Day(WS1.Cells(iiZeile, 1)) = Day(WS2.Cells(iZeile, 3)) And _
Month(WS1.Cells(iiZeile, 1)) = Month(WS2.Cells(iZeile, 3)) Then Exit For
Next iiZeile
With WS1.Cells(iiZeile, 1)
Alter = Year(WS1.Cells(iiZeile, 1)) - Year(WS2.Cells(iZeile, 3))
If .Comment Is Nothing Then
.AddComment WS2.Cells(iZeile, 2).Value & ": " & Chr(10) & Alter & " Jahre"
.Comment.Visible = True
With Selection.Font
.Name = "Tahoma"
.FontStyle = "Fett"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 9
End With
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlTop
.Orientation = xlHorizontal
'            .AutoSize = True
End With
With .Comment.Shape
.Fill.ForeColor.SchemeColor = 41
.Fill.Transparency = 0#
.Line.Weight = 0.75
'            .Line.DashStyle = msoLineSolid
'            .Line.Style = msoLineSingle
.Line.Transparency = 0#
.Line.Visible = msoTrue
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.BackColor.RGB = RGB(255, 255, 255)
.Shadow.ForeColor.SchemeColor = 6
End With
Else
.Comment.Text Text:=.Comment.Text & Chr(10) & WS2.Cells(iZeile, 2).Value & ": " & Chr(10) & Alter & " Jahre"
End If
End With
Next iZeile
Application.ScreenUpdating = True
ActiveSheet.Protect Password:=""
End Sub

Die Formatierung ist in dem Feld, was ======== gesperrt ist. Warum bekomme ich
das nicht so hin bzw. ich hatte heute eine Schöne Formatierung:
With Selection.Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 9
End With
Selection.ShapeRange.Line.Weight = 1.5
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency = 0#
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 43
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Fill.OneColorGradient msoGradientHorizontal, 4, 0.23
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 70.5
Selection.ShapeRange.Width = 113.25
Aber da stürzt mir das ganze Excel ab, wenn ich die einbaue.
Hast du noch eine Idee, dass würde mich sehr freuen.
Gruß
Andy
Anzeige
AW: Änderung an den Kommentarfeldern
ChrisL
Hi Andy
Nachdem ich nun eine Stunde rumprobiert habe, muss ich zugeben, dass ich auch nicht weiter komme.

Sub Notiz_Geburtstag()
Dim Alter As Byte
Dim WS1 As Worksheet, WS2 As Worksheet
Dim iZeile As Long, iiZeile As Long
Application.ScreenUpdating = False
Set WS1 = Worksheets("Dienstplan")
Set WS2 = Worksheets("Geburtstage")
WS1.Unprotect
For iZeile = 1 To WS1.Range("A65536").End(xlUp).Row
If Not WS1.Cells(iZeile, 1).Comment Is Nothing Then WS1.Cells(iZeile, 1).ClearComments
Next iZeile
For iZeile = 4 To WS2.Range("B65536").End(xlUp).Row
For iiZeile = 2 To WS1.Range("A65536").End(xlUp).Row
If Day(WS1.Cells(iiZeile, 1)) = Day(WS2.Cells(iZeile, 3)) And _
Month(WS1.Cells(iiZeile, 1)) = Month(WS2.Cells(iZeile, 3)) Then Exit For
Next iiZeile
With WS1.Cells(iiZeile, 1)
Alter = Year(.Value) - Year(WS2.Cells(iZeile, 3))
If .Comment Is Nothing Then
.AddComment.Text WS2.Cells(iZeile, 2).Value & ": " & Chr(10) & Alter & " Jahre"
.Comment.Visible = True
With Selection
With .Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 11
.ColorIndex = 9
End With
'                With Selection.ShapeRange
'                    .Line.Weight = 1.5
'                    .Line.DashStyle = msoLineSolid
'                    .Line.Style = msoLineSingle
'                    .Line.Transparency = 0#
'                    .Line.Visible = msoTrue
'                    .Line.ForeColor.RGB = RGB(0, 0, 0)
'                    .Line.BackColor.RGB = RGB(255, 255, 255)
'                    .Fill.Visible = msoTrue
'                    .Fill.ForeColor.SchemeColor = 43
'                    .Fill.Transparency = 0#
'                    .Fill.OneColorGradient msoGradientHorizontal, 4, 0.23
'                    .LockAspectRatio = msoFalse
'                    .Height = 70.5
'                    .Width = 113.25
'                End With
End With
Else
.Comment.Text Text:=.Comment.Text & Chr(10) & WS2.Cells(iZeile, 2).Value & ": " & Chr(10) & Alter & " Jahre"
End If
End With
Next iZeile
Application.ScreenUpdating = True
WS1.Protect
End Sub

Gruss
Chris
Anzeige
AW: Änderung an den Kommentarfeldern
12.06.2004 01:46:24
Andy
Hallo Chris,
schade, dass du auch keine Lösung gefunden hast. Damit bleibt
das Thema Format in den Kommentaren noch offen. Vielleicht weiß
der Forumsleiter was zu dem Thema? Ich würde gern noch einiges
ändern aber ich finde keine Lösung.
Schönes Wochenende Chris in die Schweiz
mit den besten Grüßen aus Dresden wünscht
Andy
AW: Geburtstage in Kalender als Kommentare einfügen
NE
Hi Andy,
grober Ansatz,
in Tabelle2 Spalte A die Geburtstage, Spalte B zugehörige Namen:

Sub x()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim cell As Range
Dim i As Long
Set ws1 = Sheets("Dienstplan"): Set ws2 = Sheets("Tabelle2")
For i = 1 To ws2.Cells(Rows.Count, 1).End(xlUp).Row
For Each cell In Range(ws1.Cells(1, 1), ws1.Cells(Rows.Count, 1).End(xlUp))
If cell.Value = ws2.Cells(i, 1) Then
With cell.Offset(0, 2)
If .Comment Is Nothing Then .AddComment ws2.Cells(i, 2).Value
End With
End If
Next
Next i
Set ws1 = Nothing: Set ws2 = Nothing
End Sub

cu Nancy
AW: Geburtstage in Kalender als Kommentare einfügen
08.06.2004 07:22:41
Andy
Hallo Nancy,
irgend wie bekomme ich das nicht zum Laufen. Hier ist meine Tabelle,
die ich jetzt mit Eingabemaske angefertigt habe.
Userbild
Nun sollen die Geburtstage aus dieser Tabelle als Kommentare erscheinen,
wenn es geht soll gleich das Alter, was ja in Spalte "E" steht mit ange-
zeigt werden. Habe versucht dein kleines Teil so abzuändern aber habe es
leider nicht hinbekommen. Wie macht man das am besten? Wäre schön, wenn
ich das heute vielleicht noch hinbekomme.
Gruß
Andy

285 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige