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

Forumthread: Spalten markieren wenn aktuelles Datum

Spalten markieren wenn aktuelles Datum
27.03.2008 09:35:54
Hardy
Hallo Zusammen,
in meiner Tabelle stehen in Zeile 6, Spalte H bis EG Datumswerte für jeden Arbeitstag.
Nun möchte ich, dass beim Öffnen der Tabelle die Spalte mit dem aktuellen Datum mit einem Doppelstrich rechts und links markiert wird.
Die Spalten sind mit drei bedingten Formatierungen belegt und leider gibt es bei Excel nicht mehr. Ich habe wohl ein Adin entdeckt das bis zu 30 Bedingungen hat aber leider kann ich das nicht benutzen, da es unser Admin nciht zulässt.
Mit den Werten werden Statistiken geführt.
Ich habe auch schon mit benutzerdefinierten Formaten getestet geht aber nicht, da auch 0,5 Werte eingegeben werden.
Mein letzter Gedanke ist VBA aber da habe ich überhaupt keine Ahnung.
Ich hoffe jemand kann mir helfen, Danke schon im Voraus
Hardy

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten markieren wenn aktuelles Datum
27.03.2008 10:21:26
haw
Hallo Hardy,
dieses Makro in das Klasssenmodul der Arbeitsmappe:
(Alt+F11, dann links im Projektexplorer die Datei suchen, eventuell bei MicrosoftExcelObjekte auf + klicken, nun auf DieseArbeitsmappe doppelklicken. Im nun rechts erscheinenden Fenster das Makro hineinkopieren.
Beim nächsten Öffnen wird das Makro ausgeführt und in der Tabelle (Tabellennamen von Daten auf deinen ändern) das Datum entsprechend markiert.)

Private Sub Workbook_Open()
Dim var, rng As Range
Set rng = Worksheets("Daten").Range("A6:EG6")
var = Application.Match(CDbl(Date), rng, 0)
rng.Borders(xlEdgeLeft).LineStyle = xlNone
rng.Borders(xlEdgeRight).LineStyle = xlNone
If Not IsError(var) Then
Set rng = Worksheets("Daten").Cells(6, var)
With rng.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
End With
With rng.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
End With
End If
End Sub


Gruß
Heinz

Anzeige
AW: Spalten markieren wenn aktuelles Datum
27.03.2008 11:15:32
Uwe
Hi Hardy,
fall Du möchtest, dass beim Ändern des Datums auch die Rahmen verschwinden/ erscheinen, solltest Du dieses Makro ins Klassenmodul des Tabellenblattes kopieren (also nicht auf Diese Arbeitsmappe doppelklicken, sondern auf Deine Tabelle (z.B. Tabelle1 (Tabelle1)).

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("H6:EG6")) Is Nothing And Target.Count = 1 Then
If Target.Value = Date Then
With Target.EntireColumn.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Target.EntireColumn.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Else
With Target.EntireColumn.Borders(xlEdgeLeft)
.LineStyle = xlNone
End With
With Target.EntireColumn.Borders(xlEdgeRight)
.LineStyle = xlNone
End With
End If
End If
End Sub


Damit wird jeweils beim Ändern eines Eintrags in H6:EG6 upgedated.
Gruß
Uwe
(:o)

Anzeige
AW: Spalten markieren wenn aktuelles Datum
27.03.2008 12:14:16
Hardy
Hallo Heinz und Uwe,
zuerst noch einmal vielen Dank.
Bei der Lösung von Heinz kommt nach dem öffnen der Tabelle die Meldung Laufzeitfehler 9.
Bei Uwe funktioniert es bestens wenn ich es in einer neuen Mappe teste. Kopiere ich das Makro in meine bestehende Tabelle tut sich dagegen nichts. Was mache ich falsch.
gruß
Hardy

Anzeige
AW: Spalten markieren wenn aktuelles Datum
27.03.2008 12:30:00
haw
Hallo Hardy,
der Laufzeitfehler kommt dann, wenn irgendwas nicht gefunden wird. In deinem Fall ist es sicher die Tabelle Daten, die du vermutlich nicht hast. Du musst den Tabellennamen ändern, wie ich schon erwähnte.
Gruß
Heinz

AW: Spalten markieren wenn aktuelles Datum
27.03.2008 13:24:00
Uwe
Hi Hardy,
bist du sicher, dass Du mein Makro in Deiner Mappe in die richtige Tabelle eingefügt hast?
Wenn Deine Tabelle z.B. "Übersicht" heißt musst Du im Projektfenster auf z.B. Tabelle2 (Übersicht) doppelklicken.
Anders kann ich mir das sonst nicht erklären, frag nochmal nach wenn es nicht klappt.
Gruß
Uwe
(:o)

Anzeige
AW: Spalten markieren wenn aktuelles Datum
27.03.2008 13:53:00
Hardy
Hi Uwe,
wollte dir einen screenshot hochladen, aber die Datei ist zu groß.
Habe es so gemacht wie du es erklärt hast aber es funzt trotzdem nicht in der vorhandenen Tabelle.
"VBAProjekt (Plantafel)" danach Doppelklick auf
Tabelle15 (2008 1.HJ) Fenster geht auf und dann dein Makro reinkopiert.
Bei der neu angelegten Testmappe keine Probleme.
:-( Gruß Hardy

Anzeige
AW: Spalten markieren wenn aktuelles Datum
28.03.2008 14:40:00
Hardy
Hallo Uwe,
ich sollte mich nochmal melden falls es nicht klappt. Das tue ich hiermit.
Ich habe alles so gemacht wie du es beschrieben hast und es klappt auch wunderbar in einer neuen Tabelle.
Wenn ich das Makro in meine bestehende Tabelle einkopiere tut sich nichts. Kann es vielleicht an den Formatierungen der Spalten liegen, ich habe schon die Spalten mit je 3 bedingten Formaten belegt.
Über eine Tip wäre ich dankbar.
Schönes Wochenende Hardy

Anzeige
AW: Spalten markieren wenn aktuelles Datum
28.03.2008 21:49:55
Jens
Hi,
überprüfe den Datentyp in den Zellen.
mfg Jens

AW: Spalten markieren wenn aktuelles Datum
31.03.2008 08:04:56
Hardy
Hallo Jens,
kannst du mir bitte genauer erklären was du mit Datentyp meinst.
In den Zellen gebe ich nur Zahlen oder Buchstaben ein.
Gruß Hardy

AW: Spalten markieren wenn aktuelles Datum
27.03.2008 13:30:00
Hardy
Hallo Heinz,
hier habe ich dir die gelb markierte Zeile
Set rng = Worksheets("Mappe1Test").Range ("A6:EG6")
vielleicht findest du den Fehler.
Gruß
Hardy

Anzeige
AW: Spalten markieren wenn aktuelles Datum
27.03.2008 14:11:00
haw
Hallo Hardy,
ein Fehler kann da nur auftauchen, wenn es in der aktiven Arbeitsmappe die Tabelle "Mappe1Test" nicht gibt. Bist du sicher, dass sie da ist?
Gruß
Heinz

AW: Spalten markieren wenn aktuelles Datum
27.03.2008 14:22:09
haw
Hallo Hardy,
hier eine Testmappe, in der die Tabelle (!) Mappe1Test vorhanden ist
https://www.herber.de/bbs/user/51076.xls
Gruß
Heinz

Anzeige
AW: Spalten markieren wenn aktuelles Datum
27.03.2008 14:37:00
Hardy
Hallo Heinz,
OK, ich stand wohl auf der Leitung. Es funktioniert, aber die Lösung von Uwe ist für mich besser.
1. wird die ganze Spalte markiert
2. wird die Markierung wieder entfernt wenn kein aktuelles Datum in der Zelle steht.
3. die Markierung wird gesetzt sobald das Datum eingetragen wird/ist.
Trotzdem vielen Dank für deine Mühe
Gruß Hardy
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aktuelles Datum in Excel Spalten hervorheben


Schritt-für-Schritt-Anleitung

Um die Spalte mit dem aktuellen Datum in Excel hervorzuheben, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Im Projekt-Explorer auf der linken Seite suche deine Arbeitsmappe und klicke auf DieseArbeitsmappe.

  3. Kopiere den folgenden Code in das geöffnete Fenster:

    Private Sub Workbook_Open()
       Dim var, rng As Range
       Set rng = Worksheets("Daten").Range("A6:EG6")
       var = Application.Match(CDbl(Date), rng, 0)
       rng.Borders(xlEdgeLeft).LineStyle = xlNone
       rng.Borders(xlEdgeRight).LineStyle = xlNone
       If Not IsError(var) Then
           Set rng = Worksheets("Daten").Cells(6, var)
           With rng.Borders(xlEdgeLeft)
               .LineStyle = xlDouble
               .Weight = xlThick
           End With
           With rng.Borders(xlEdgeRight)
               .LineStyle = xlDouble
               .Weight = xlThick
           End With
       End If
    End Sub
  4. Ändere den Tabellennamen, falls er nicht "Daten" heißt.

  5. Schließe den VBA-Editor und speichere deine Arbeitsmappe als *Makro-fähige Datei (.xlsm)**.

  6. Schließe Excel und öffne die Datei erneut, um das Makro auszuführen. Die Spalte mit dem aktuellen Datum wird jetzt hervorgehoben.


Häufige Fehler und Lösungen

  • Laufzeitfehler 9: Dieser Fehler tritt auf, wenn der angegebene Tabellenname nicht existiert. Überprüfe den Tabellennamen im Code und passe ihn an deine Datei an.
  • Makro funktioniert nicht: Stelle sicher, dass du das Makro im richtigen Modul (DieseArbeitsmappe oder das spezifische Tabellenblatt) eingefügt hast.
  • Bedingte Formatierungen: Wenn du bereits drei bedingte Formatierungen in den Spalten hast, kann das die Ausführung des Codes beeinflussen. Überprüfe die vorhandenen Formatierungen.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, gibt es alternative Methoden:

  1. Bedingte Formatierung:

    • Markiere die Spalten H bis EG.
    • Gehe zu Start > Bedingte Formatierung > Neue Regel.
    • Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
    • Gib die Formel =H6=HEUTE() ein und wähle eine Formatierung aus.
  2. Excel-Funktionen:

    • Du kannst auch eine Hilfsspalte verwenden, um das heutige Datum zu überprüfen und dann manuell die Spalte hervorzuheben.

Praktische Beispiele

Hier ist ein Beispiel, wie du das Makro in einer Excel-Plantafel verwenden kannst:

  • Angenommen, du hast eine Plantafel mit Datumsangaben in Zeile 6. Mit dem oben genannten Makro wird die Spalte für den aktuellen Tag in Excel hervorgehoben.

Füge den Code in dein Excel-Dokument ein, um zu sehen, wie die Spalte mit dem aktuellen Datum markiert wird.


Tipps für Profis

  • Verwendung von Worksheet_Change: Um die Rahmen automatisch zu entfernen, wenn das Datum geändert wird, kannst du ein weiteres Makro hinzufügen:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("H6:EG6")) Is Nothing Then
           If Target.Value = Date Then
               With Target.EntireColumn.Borders(xlEdgeLeft)
                   .LineStyle = xlDouble
                   .Weight = xlThick
               End With
               With Target.EntireColumn.Borders(xlEdgeRight)
                   .LineStyle = xlDouble
                   .Weight = xlThick
               End With
           Else
               With Target.EntireColumn.Borders(xlEdgeLeft)
                   .LineStyle = xlNone
               End With
               With Target.EntireColumn.Borders(xlEdgeRight)
                   .LineStyle = xlNone
               End With
           End If
       End If
    End Sub
  • Regelmäßige Sicherung: Da VBA-Makros Änderungen an deinen Daten vornehmen, ist es ratsam, regelmäßig Sicherungskopien deiner Datei zu erstellen.


FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen?
Du kannst die Zellbereiche in den Codezeilen Set rng = ... anpassen, um andere Bereiche zu markieren.

2. Funktioniert das Makro in Excel Online?
Nein, VBA-Makros funktionieren nur in der Desktop-Version von Excel.

3. Was ist, wenn ich mehrere Datumsformate habe?
Stelle sicher, dass alle Datumswerte im gleichen Format eingegeben sind, um die Übereinstimmung zu gewährleisten.

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