Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kommentar bei bedingter Formatierung einbetten?

Forumthread: Kommentar bei bedingter Formatierung einbetten?

Kommentar bei bedingter Formatierung einbetten?
14.01.2018 13:04:13
Jürgen
Hallo zusammen,
mir kam folgender Gedanke zu einem bestehenden Kalenderblatt, bin mir aber nicht sicher ob das zum umsetzen möglich ist:
Ich markiere Spalten (tage) in Tabelle 1 (=Kalenderblatt) farbig auf Basis einer Liste für die Jahre 2018-2025, welche sich in Tabelle 2 befinden.
Die Formatierung dazu lautet:
=SVERWEIS(F$5;Feiertage;1;0)
für den Bereich :
=$F$4:$NE$40
Das klappt auch soweit alles.
Frage nun hierzu:
ist es möglich, dass man der so entsprechend eingefärbten Spalte auch zusätzlich ( evtl. in Form eines Kommentares) die entsprechende Bezeichnung zuordnen kann?
Also, dass bei MouseOver eben der Feiertagsname aus Tabelle 2 erscheint?
Falls, wie würde der Ansatz dazu dann aussehen? Formel oder VBA?
Danke & Gruss,
Juergen
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nachgefragt ...
14.01.2018 13:56:19
...
Hallo Jürgen,
... wieso bezeichnest Du Deine Formel =SVERWEIS(F$5;Feiertage;1;0) als Formatierung? Auch sonst ist mir aus Deinen bisherigen Angaben nicht wirklich verständlich, was Du wo zu stehen hast und warum Du für was eine Anzeige als Kommentar benötigst. Eine Beispieldatei wäre schon sinnvoll.
Gruß Werner
.. , - ...
Anzeige
AW: hier eine Beispieldatei
14.01.2018 16:05:37
Jürgen
Hallo Werner,
sorry, wenn ich mich missverständlich ausgedrückt habe. Die Formel steht so hinterlegt in der bedingten Formatierung. Ansonsten gerne hier meine Ausgangsdatei zu meinem Anliegen:
https://www.herber.de/bbs/user/118953.xlsm
Frage dazu:
es sind verschiedene Tage vertikal violett markiert aufgrund der Feiertags-Liste in Tabelle "Feiertage". Nun wollte ich im Top der farbigen Spalte bei diesen violett markierten Spalten einen Kommentar zur Info mit dem Anlass einbetten, so z.B. Ostermontag, Karfreitag, etc..
Danke & Gruss,
Juergen
Anzeige
AW: offensichtlich VBA-Lösung gesucht ...
14.01.2018 16:14:28
...
Hallo Jürgen,
... aus einer solchen halte ich mich heraus und downlade mir auch keine xlsm-Datei.
Gruß Werner
.. , - ...
AW: hier eine Beispieldatei
14.01.2018 16:53:52
Sepp
Hallo Jürgen,
in des Modul der Tabelle.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRange As Range, objDate As Range
Dim varRet As Variant, objComment As Comment

If Target.Address(0, 0) = "C1" Then
  Set objDate = Range(Cells(5, 6), Cells(5, Cells(5, Columns.Count).End(xlToLeft).Column))
  objDate.ClearComments
  For Each objRange In objDate
    varRet = Application.Match(Clng(objRange), Sheets("Feiertage").Columns(2), 0)
    If IsNumeric(varRet) Then
      Set objComment = objRange.AddComment
      With objComment.Shape.TextFrame
        .Characters.Text = Sheets("Feiertage").Cells(varRet, 1).Text
        .AutoSize = True
      End With
    End If
  Next
End If
End Sub


Gruß Sepp

Anzeige
AW: Nachgefragt wegen Modul Platz
14.01.2018 17:40:00
Jürgen
Hallo Sepp,
vielen Dank für deine Antwort.
Nur um sicher zu gehen:
Ich habe deinen Code in die Tabelle 4 eingefügt.
Da siehts jetzt so aus:
' **********************************************************************
' Modul: Tabelle4 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Option Explicit
Sub scrollMonth()
Dim objShape As Shape
Dim lngMonth As Long, lngFind As Long, varRet As Variant
Set objShape = Me.Shapes(Application.Caller)
With objShape
lngMonth = CLng(.TextFrame.Characters.Text)
lngFind = Application.Max(DateSerial(Year(Range("C1")), lngMonth, 1), Range("C1"))
varRet = Application.Match(lngFind, Rows(5), 0)
If IsNumeric(varRet) Then
ActiveWindow.ScrollColumn = varRet
End If
End With
Set objShape = Nothing
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objRange As Range, objDate As Range
Dim varRet As Variant, objComment As Comment
If Target.Address(0, 0) = "C1" Then
Set objDate = Range(Cells(5, 6), Cells(5, Cells(5, Columns.Count).End(xlToLeft).Column))
objDate.ClearComments
For Each objRange In objDate
varRet = Application.Match(CLng(objRange), Sheets("Feiertage").Columns(2), 0)
If IsNumeric(varRet) Then
Set objComment = objRange.AddComment
With objComment.Shape.TextFrame
.Characters.Text = Sheets("Feiertage").Cells(varRet, 1).Text
.AutoSize = True
End With
End If
Next
End If
End Sub

Ich kann aber keine Änderung feststellen. Habe ich das falsch gemacht!?
Hier das Sheet dazu nochmals:
https://www.herber.de/bbs/user/118960.xlsm
Danke & Gruss,
Juergen
Anzeige
AW: Nachgefragt wegen Modul Platz
14.01.2018 17:44:35
Sepp
Hallo Jürgen,
der Code läuft, sobald du in C1 das Datum eingibst.
Gruß Sepp

AW: Nachgefragt wegen Modul Platz
14.01.2018 18:12:41
Juergen
Hallo Sepp,
leider wills nicht klappen.
In C1 steht ja bereits ein Datum.
Das löschte ich und trug es erneut ein. Doch leider keine Aktion!?
Danke & Gruss,
Juergen
Anzeige
AW: Nachgefragt wegen Modul Platz
14.01.2018 18:18:34
Sepp
Hallo Jürgen,
na ja, ohne Code wird’s wohl nicht klappen! Du hast zweimal die Prozedur 'ScrollMonth' drin, aber nicht meinen Code, außerdem darf 'Option Explicit' nur ein mal, und zwar ganz zu beginn des Module stehen!
https://www.herber.de/bbs/user/118963.xlsm
Gruß Sepp

Anzeige
AW: klappt jetzt alles astrein!
14.01.2018 19:23:45
Jürgen
Hallo Sepp,
ok, das war selten blöd von mir. Entschuldige.
Hab mich mit meinen Test-Versionen total verzettelt.
Klappt natürlich jetzt auch bei mir.
Herzlichen Dank für deine schnelle und kompetente Hilfe!
Gruss, Juergen
;
Anzeige
Anzeige

Infobox / Tutorial

Kommentar bei bedingter Formatierung einbetten


Schritt-für-Schritt-Anleitung

Um in Excel bei einer bedingten Formatierung Kommentare für Feiertage wie Karfreitag oder Ostermontag einzubetten, befolge diese Schritte:

  1. Öffne Dein Excel-Dokument und gehe auf das Tabellenblatt, wo die bedingte Formatierung angewendet werden soll.

  2. Füge die Feiertagsliste in ein anderes Tabellenblatt (z.B. "Feiertage") ein. Diese Liste sollte die Daten der Feiertage in einer Spalte und die entsprechenden Namen in der danebenstehenden Spalte enthalten.

  3. Wende die bedingte Formatierung an:

    • Markiere die Zellen, die Du formatieren möchtest.
    • Gehe zu Start > Bedingte Formatierung > Neue Regel.
    • Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
    • Gib die Formel ein: =SVERWEIS(F$5;Feiertage;1;0).
    • Wähle die gewünschte Formatierung aus (z.B. violett für Feiertage).
  4. Füge den VBA-Code ein:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Doppelklicke auf das entsprechende Tabellenblatt im Projektfenster.
    • Füge den folgenden Code ein:
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim objRange As Range, objDate As Range
       Dim varRet As Variant, objComment As Comment
       If Target.Address(0, 0) = "C1" Then
           Set objDate = Range(Cells(5, 6), Cells(5, Cells(5, Columns.Count).End(xlToLeft).Column))
           objDate.ClearComments
           For Each objRange In objDate
               varRet = Application.Match(CLng(objRange), Sheets("Feiertage").Columns(2), 0)
               If IsNumeric(varRet) Then
                   Set objComment = objRange.AddComment
                   With objComment.Shape.TextFrame
                       .Characters.Text = Sheets("Feiertage").Cells(varRet, 1).Text
                       .AutoSize = True
                   End With
               End If
           Next
       End If
    End Sub
  5. Teste die Funktion: Gib in Zelle C1 ein Datum ein, um den Kommentar anzuzeigen, wenn Du mit der Maus über die formatierte Zelle fährst.


Häufige Fehler und Lösungen

  • Fehler 1: Der Kommentar erscheint nicht.

    • Lösung: Stelle sicher, dass der VBA-Code korrekt in das entsprechende Tabellenblatt eingefügt wurde. Überprüfe auch, ob die Feiertagsliste richtig formatiert ist.
  • Fehler 2: Die bedingte Formatierung funktioniert nicht.

    • Lösung: Überprüfe die Formel in der bedingten Formatierung. Sie sollte die richtige Spalte und den richtigen Bereich referenzieren.
  • Fehler 3: Es gibt mehrere Prozeduren im Modul.

    • Lösung: Stelle sicher, dass Option Explicit nur einmal am Anfang des Moduls steht und entferne doppelte Prozeduren.

Alternative Methoden

Falls Du keine VBA-Programmierung nutzen möchtest, kannst Du folgenden alternativen Ansatz probieren:

  1. Verwende Datenüberprüfung: Statt Kommentare zu verwenden, kannst Du auch Datenüberprüfung mit einer Dropdown-Liste einrichten, die die Feiertagsnamen anzeigt, wenn Du eine Zelle auswählst.

  2. Hyperlinks einfügen: Füge Hyperlinks zu einer anderen Tabelle hinzu, die die Feiertagsnamen enthält. So kannst Du die Informationen schnell abrufen, ohne VBA zu verwenden.


Praktische Beispiele

  1. Karfreitag in Zelle C1: Wenn Du in Zelle C1 den 07.04.2023 eingibst, wird die entsprechende Zelle in Deinem Kalenderblatt violett eingefärbt und zeigt bei MouseOver den Text "Karfreitag".

  2. Ostermontag in Zelle C2: Bei Eingabe des Datums 10.04.2023 in Zelle C2 wird ebenfalls die Zelle gefärbt und der Kommentar "Ostermontag" angezeigt.


Tipps für Profis

  • Excel Schriftart einbetten: Du kannst die Schriftart für die Kommentare anpassen, indem Du den Code entsprechend modifizierst. Beispielsweise:

    .Characters.Font.Name = "Arial"
    .Characters.Font.Size = 10
  • Feiertage dynamisch laden: Nutze dynamische Bereiche oder Tabellen, um sicherzustellen, dass Deine Feiertagsliste immer aktuell bleibt.


FAQ: Häufige Fragen

1. Kann ich mehrere Kommentare in einer Zelle haben?
Nein, es ist nur möglich, einen Kommentar pro Zelle hinzuzufügen. Wenn Du mehrere Feiertage für einen Tag hast, könntest Du sie in einer Liste zusammenfassen.

2. Funktioniert dies in allen Excel-Versionen?
Ja, die beschriebenen Schritte sollten in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren. Achte jedoch darauf, dass die VBA-Funktion aktiviert ist.

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