MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 11.02.2019, 09:54   #1
LUPO123456789
MOF User
MOF User
Ärger Excel 2013 - Feiertage als Kommentar einfügen

Hallo

ich habe alle Feiertage berechnen lassen, nun möchte ich noch einen Kommentar mit dem Feiertag hinzufügen. Dieser Kommentar soll dann in der Datumszeile 5 beim richtigen Datum auftauchen. Wie mache ich das? Komme hier leider nicht auf einen grünen Zweig.

Kann mir jemand behilflich sein, wie man das am besten löst?

Bei Fragen gerne melden.



Code:

Sub Feiertage_kommentieren()

Dim FTCells As Range
Dim RaZelle As Range

Dim Jahr As Integer
Jahr = Range("B2")


      
    For Each FTCells In ActiveSheet.Range("C5:NU5")
        DoEvents
        If FTCells.Value = DateSerial(Jahr, 1, 1) _
             Or FTCells.Value = DateSerial(Jahr, 1, 6) _
             Or FTCells.Value = DateSerial(Jahr, 5, 1) _
             Or FTCells.Value = Ostern(Jahr) - 2 _
             Or FTCells.Value = Ostern(Jahr) + 1 _
             Or FTCells.Value = Ostern(Jahr) + 39 _
             Or FTCells.Value = Ostern(Jahr) + 49 _
             Or FTCells.Value = Ostern(Jahr) + 50 _
             Or FTCells.Value = Ostern(Jahr) + 60 _
             Or FTCells.Value = DateSerial(Jahr, 8, 15) _
             Or FTCells.Value = DateSerial(Jahr, 10, 3) _
             Or FTCells.Value = DateSerial(Jahr, 11, 1) _
             Or FTCells.Value = DateSerial(Jahr, 12, 25) _
             Or FTCells.Value = DateSerial(Jahr, 12, 26) _
        Then

            Range(Cells(5, FTCells.Column), Cells(5, FTCells.Column)).AddComment
                   
        End If
    Next FTCells
End Sub
LUPO123456789 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 10:43   #2
EarlFred
MOF Guru
MOF Guru
Standard

sind die Daten (Plural von Datum) im Kalender per Zufallsprinzip angelegt, oder gibt es ein System?
Nur im ersten Fall ergibt Dein Codeansatz überhaupt Sinn. Im anderen Fall würde man die Feiertage im Kalender gezielt ansprechen.

Zitat:

Komme hier leider nicht auf einen grünen Zweig.

d. h, Du findet im Netz keinen Mustercode, wie man Kommentare anlegt? Oder woran scheitert es genau?

FTCells dürfte in Deinem Fall genau dem Bereich Range(Cells(5, FTCells.Column), Cells(5, FTCells.Column)) entsprechen.
Einen Bereich, bestehend aus einer Zelle, könnte man auch einfacher nur mit Cells() ansprechen.

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!

Geändert von EarlFred (11.02.2019 um 10:46 Uhr).
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 10:56   #3
LUPO123456789
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ja ich weis nicht wie ich jetzt am elegantersten jeder Zelle einen Kommentar zuweise. Oke wie würde ich das einfacher machen?

Vielleicht einfach am Beispiel 1.1 Kommentar "Neujahr" erklären.

Vielen Dank
LUPO123456789 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 12:08   #4
EarlFred
MOF Guru
MOF Guru
Standard

Zitat:

wie ich jetzt am elegantersten jeder Zelle einen Kommentar zuweise

Kommentar zuweisen: Mit AddComment - dafür steht der ja Code schon da - zumindest fast.
Wenn man AddComment markiert und F1 drückt, bekommt man übrigens Hilfe im Netz zur Methode - mit Mustercode.

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 13:15   #5
EarlFred
MOF Guru
MOF Guru
Standard

Code:

Option Explicit

Sub Feiertage_kommentieren()

Dim Jahr As Long
Dim fFeiertage(0 To 2, 0 To 1), i As Long

Jahr = ActiveSheet.Range("B2")

fFeiertage(0, 0) = "Neujahr"
fFeiertage(0, 1) = DateSerial(Jahr, 1, 1)
fFeiertage(1, 0) = "1. Weihnachtsfeiertag"
fFeiertage(1, 1) = DateSerial(Jahr, 12, 25)
fFeiertage(2, 0) = "2. Weihnachtsfeiertag"
fFeiertage(2, 1) = DateSerial(Jahr, 12, 26)
'usw.

'alte Kommentare löschen
ActiveSheet.Range("C5:NU5").ClearComments
      
'neue eintragen
For i = LBound(fFeiertage, 1) To UBound(fFeiertage, 1)
  ActiveSheet.Range("C5:NU5").Cells(fFeiertage(i, 1) - DateSerial(Jahr, 1, 1) + 1).AddComment fFeiertage(i, 0)
Next i
      
End Sub

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!

Geändert von EarlFred (11.02.2019 um 13:25 Uhr).
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 19:11   #6
Soddel
MOF User
MOF User
Standard

guck mal hier, da wurde mir geholfen

https://www.ms-office-forum.net/foru...d.php?t=357557

__________________

herzliche Grüße aus dem Emsland
Peter

Office 2016, Windows 10
Soddel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 06:53   #7
LUPO123456789
Threadstarter Threadstarter
MOF User
MOF User
Standard

Vielen Dank für die Hilfe

Hab das ganze jetzt.
Nur ist mir aufgefallen ich habe das Datum in Zeile5
möchte die Kommentare dazu in Zeile 7. Wie kann ich das umsetzen?

Hier der aktuelle Code

Code:

Sub Feiertage_kommentieren()

Dim Jahr As Long
Dim fFeiertage(0 To 13, 0 To 1), i As Long

Jahr = ActiveSheet.Range("B2")

'Feiertage berechnen
fFeiertage(0, 1) = DateSerial(Jahr, 1, 1)
fFeiertage(1, 1) = DateSerial(Jahr, 1, 6)
fFeiertage(2, 1) = DateSerial(Jahr, 5, 1)
fFeiertage(3, 1) = Ostern(Jahr) - 2
fFeiertage(4, 1) = Ostern(Jahr) + 1
fFeiertage(5, 1) = Ostern(Jahr) + 39
fFeiertage(6, 1) = Ostern(Jahr) + 49
fFeiertage(7, 1) = Ostern(Jahr) + 50
fFeiertage(8, 1) = Ostern(Jahr) + 60
fFeiertage(9, 1) = DateSerial(Jahr, 8, 15)
fFeiertage(10, 1) = DateSerial(Jahr, 10, 3)
fFeiertage(11, 1) = DateSerial(Jahr, 11, 1)
fFeiertage(12, 1) = DateSerial(Jahr, 12, 25)
fFeiertage(13, 1) = DateSerial(Jahr, 12, 26)

'Feiertage benennen
fFeiertage(0, 0) = "Neujahr"
fFeiertage(1, 0) = "Heilige Drei Könige"
fFeiertage(2, 0) = "Tag der Arbeit"
fFeiertage(3, 0) = "Karfreitag"
fFeiertage(4, 0) = "Ostermontag"
fFeiertage(5, 0) = "Christi Himmelfahrt"
fFeiertage(6, 0) = "Pfingstsonntag"
fFeiertage(7, 0) = "Pfingstmontag"
fFeiertage(8, 0) = "Fronleichnam"
fFeiertage(9, 0) = "Maria Himmelfahrt"
fFeiertage(10, 0) = "Tag der Deutschen Einheit"
fFeiertage(11, 0) = "Allerheiligen"
fFeiertage(12, 0) = "1. Weihnachtsfeiertag"
fFeiertage(13, 0) = "2. Weihnachtsfeiertag"

'alte Kommentare löschen
ActiveSheet.Range("C7:NU7").ClearComments
      
'neue Kommentare eintragen
For i = LBound(fFeiertage, 1) To UBound(fFeiertage, 1)
  ActiveSheet.Range("C5:NU5").Cells(fFeiertage(i, 1) + DateSerial(Jahr, 1, 1) + 1).AddComment fFeiertage(i, 0)
Next i

End Sub
LUPO123456789 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 08:52   #8
EarlFred
MOF Guru
MOF Guru
Standard

da Du weißt, dass die Kommentare mit AddComment erstellt werden und diese Methode hier verwendet wird:
Code:

 ActiveSheet.Range("C5:NU5").Cells(fFeiertage(i, 1) - DateSerial(Jahr, 1, 1) + 1).AddComment fFeiertage(i, 0)
sollte es doch naheliegend sein, was wo zu ändern ist.

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!

Geändert von EarlFred (12.02.2019 um 09:27 Uhr).
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 09:02   #9
LUPO123456789
Threadstarter Threadstarter
MOF User
MOF User
Standard

Vielen Dank für deine Antwort.

Das hätte ich auch versucht.
Problem ist aber dass das richtige Datum in Zeile 5 steht.
In Zeile 7 steht kein Datum.

Er müsste also in Zeile 5 suchen und bei Übereinstimmung in 2 Zeilen darunter den Kommentar eintragen. Sehe ich das richtig?

Aber wie mache ich das.
LUPO123456789 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 09:12   #10
Mc Santa
MOF Meister
MOF Meister
Standard

Aktuell sucht der Code gar nicht nach einem Datum in Zeile 5 sondern schreibt einfach den Kommentar in die Zelle unter der Annahme, dass ab Spalte C die Datumswerte fortlaufend eingetragen sind.

Daher geht das gleiche auch in Zeile 7 mit der vorgeschlagenen Änderung.
Bitte beachte, dass du einen Fehler beim Abschreiben gemacht hast, das Plus (+) muss ein Minus (-) sein.
Code:

+ DateSerial(Jahr, 1, 1)
Zuletzt möchte ich dich ermutigen, Code auszuprobieren, dann hätte es vielleicht schon geklappt

VG, Santa

__________________

Wie erstelle ich eine Pivot-Tabelle?
http://www.youtube.com/watch?v=jpLN5P9zx9A
http://www.excellernen.de/excel-pivot-tabelle

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)
Mc Santa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 09:28   #11
EarlFred
MOF Guru
MOF Guru
Standard

@Santa

Zitat:

Plus (+) muss ein Minus (-) sein

Autsch! Korrekt. Habe ich garnicht mehr drauf geachtet, da ich nicht annahm, dass bei Copy&Paste irgendwas geändert wird...

Zitat:

Aktuell sucht der Code gar nicht nach einem Datum in Zeile 5 sondern schreibt einfach den Kommentar in die Zelle unter der Annahme, dass ab Spalte C die Datumswerte fortlaufend eingetragen sind.

...beginnend ab dem 1.1. des Jahres. Darauf zielte meine (nicht beantwortete) Rückfrage im Beitrag #2.

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 09:45   #12
LUPO123456789
Threadstarter Threadstarter
MOF User
MOF User
Standard

Vielen Dank für eurer Antworten.

Das minus habe ich schon getauscht. Habe ich bereits gemerkt.
Jedoch ist das Datum nicht fortlaufend. Es befinden sich dazwischen leere Zellen. Deshalb sind die Kommentare verschoben. Also nicht beim richtigen Datum.
Also es müsste das datum in Zeile 5 gesucht werden.
LUPO123456789 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 10:05   #13
EarlFred
MOF Guru
MOF Guru
Standard

Zitat:

Jedoch ist das Datum nicht fortlaufend

es wäre durchaus wünschenswert, wenn Rückfragen beantwortet werden - die werden ja nicht aus reiner Lust und Langeweile gestellt.

Code:

Option Explicit

Sub Feiertage_kommentieren()

Dim Jahr As Long
Dim fFeiertage(0 To 2, 0 To 1) As Variant, i As Long
Dim vRet As Variant

Jahr = ActiveSheet.Range("B2")

fFeiertage(0, 0) = "Neujahr"
fFeiertage(0, 1) = DateSerial(Jahr, 1, 1)
fFeiertage(1, 0) = "1. Weihnachtsfeiertag"
fFeiertage(1, 1) = DateSerial(Jahr, 12, 25)
fFeiertage(2, 0) = "2. Weihnachtsfeiertag"
fFeiertage(2, 1) = DateSerial(Jahr, 12, 26)
'usw.

'alte Kommentare löschen
ActiveSheet.Range("C7:NU7").ClearComments
      
'neue eintragen
For i = LBound(fFeiertage, 1) To UBound(fFeiertage, 1)
  vRet = Application.Match(CLng(fFeiertage(i, 1)), ActiveSheet.Range("C5:NU5"), 0)
  If IsNumeric(vRet) Then ActiveSheet.Range("C7:NU7").Cells(vRet).AddComment fFeiertage(i, 0)
Next i
      
End Sub

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 11:51   #14
LUPO123456789
Threadstarter Threadstarter
MOF User
MOF User
Standard

Vielen Dank,

jetzt funktioniert es wie gewünscht.

Besten Dank.

Hier der verwendete Code

Code:

Sub Feiertage_kommentieren()

Dim Jahr As Integer
Dim fFeiertage(0 To 13, 0 To 1) As Variant, i As Long
Dim vRet As Variant


Jahr = ActiveSheet.Range("B2")

'Feiertage berechnen
fFeiertage(0, 1) = DateSerial(Jahr, 1, 1)
fFeiertage(1, 1) = DateSerial(Jahr, 1, 6)
fFeiertage(2, 1) = DateSerial(Jahr, 5, 1)
fFeiertage(3, 1) = Ostern(Jahr) - 2
fFeiertage(4, 1) = Ostern(Jahr) + 1
fFeiertage(5, 1) = Ostern(Jahr) + 39
fFeiertage(6, 1) = Ostern(Jahr) + 49
fFeiertage(7, 1) = Ostern(Jahr) + 50
fFeiertage(8, 1) = Ostern(Jahr) + 60
fFeiertage(9, 1) = DateSerial(Jahr, 8, 15)
fFeiertage(10, 1) = DateSerial(Jahr, 10, 3)
fFeiertage(11, 1) = DateSerial(Jahr, 11, 1)
fFeiertage(12, 1) = DateSerial(Jahr, 12, 25)
fFeiertage(13, 1) = DateSerial(Jahr, 12, 26)

'Feiertage benennen
fFeiertage(0, 0) = "Neujahr"
fFeiertage(1, 0) = "Heilige Drei Könige"
fFeiertage(2, 0) = "Tag der Arbeit"
fFeiertage(3, 0) = "Karfreitag"
fFeiertage(4, 0) = "Ostermontag"
fFeiertage(5, 0) = "Christi Himmelfahrt"
fFeiertage(6, 0) = "Pfingstsonntag"
fFeiertage(7, 0) = "Pfingstmontag"
fFeiertage(8, 0) = "Fronleichnam"
fFeiertage(9, 0) = "Maria Himmelfahrt"
fFeiertage(10, 0) = "Tag der Deutschen Einheit"
fFeiertage(11, 0) = "Allerheiligen"
fFeiertage(12, 0) = "1. Weihnachtsfeiertag"
fFeiertage(13, 0) = "2. Weihnachtsfeiertag"

'alte Kommentare löschen
ActiveSheet.Range("C7:NU7").ClearComments
      
'neue Kommentare eintragen
For i = LBound(fFeiertage, 1) To UBound(fFeiertage, 1)
  vRet = Application.Match(CLng(fFeiertage(i, 1)), ActiveSheet.Range("C5:NU5"), 0)
  If IsNumeric(vRet) Then ActiveSheet.Range("C7:NU7").Cells(vRet).AddComment fFeiertage(i, 0)
Next i

'Alle Kommentare anpassen
Dim Kommentar As Range
For Each Kommentar In ActiveSheet.Cells.SpecialCells(xlCellTypeComments)
  Kommentar.Comment.Shape.TextFrame.Characters.Font.Name = "Arial"
        Kommentar.Comment.Shape.TextFrame.Characters.Font.Size = 14
        Kommentar.Comment.Shape.TextFrame.AutoSize = True 'Automatische Größenanpassung
        Kommentar.Comment.Shape.TextFrame.Characters.Font.Bold = True
Next

End Sub
LUPO123456789 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 12:12   #15
EarlFred
MOF Guru
MOF Guru
Standard

nicht immer alles mehrfach machen, sondern den Kommentar gleich bearbeiten:

Code:

Dim Jahr As Integer
Dim fFeiertage(0 To 13, 0 To 1) As Variant, i As Long
Dim vRet As Variant
Dim c As Comment

'usw...

For i = LBound(fFeiertage, 1) To UBound(fFeiertage, 1)
  vRet = Application.Match(CLng(fFeiertage(i, 1)), ActiveSheet.Range("C5:NU5"), 0)
  If IsNumeric(vRet) Then
    Set c = ActiveSheet.Range("C7:NU7").Cells(vRet).AddComment(fFeiertage(i, 0))
    c.Shape.TextFrame.Characters.Font.Name = "Arial"
    c.Shape.TextFrame.Characters.Font.Size = 14
    c.Shape.TextFrame.AutoSize = True 'Automatische Größenanpassung
    c.Shape.TextFrame.Characters.Font.Bold = True
  End If
Next i

__________________

Datum und Uhrzeit, Makrorekorder-Code entschlacken, {Matrixformeln}
Tutorials zu Pivottabellen: Kurzeinstieg; Dynamischer Datenbereich; Daten und Zeiten gruppieren
Für 7 meiner Beiträge haben sich die Hilfesuchenden mit einer Spende an Wikipedia, die Tafeln oder Hilfe für krebskranke Kinder eV bedankt (das entspricht 0,049% per 19.12.2018) - eine tolle Geste!
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:22 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.