Microsoft Excel

Herbers Excel/VBA-Archiv

Spalten markieren wenn aktuelles Datum

Betrifft: Spalten markieren wenn aktuelles Datum von: Hardy
Geschrieben am: 27.03.2008 09:35:54

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

  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: haw
Geschrieben am: 27.03.2008 10:21:26

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


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Uwe (:o)
Geschrieben am: 27.03.2008 11:15:32

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)


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Hardy
Geschrieben am: 27.03.2008 12:14:16

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




  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: haw
Geschrieben am: 27.03.2008 12:30:08

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


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Uwe (:o)
Geschrieben am: 27.03.2008 13:24:59

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)


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Hardy
Geschrieben am: 27.03.2008 13:53:14

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


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Hardy
Geschrieben am: 28.03.2008 14:40:52

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


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Jens
Geschrieben am: 28.03.2008 21:49:55

Hi,

überprüfe den Datentyp in den Zellen.

mfg Jens


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Hardy
Geschrieben am: 31.03.2008 08:04:56

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


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Hardy
Geschrieben am: 27.03.2008 13:30:32

Hallo Heinz,

hier habe ich dir die gelb markierte Zeile

Set rng = Worksheets("Mappe1Test").Range ("A6:EG6")

vielleicht findest du den Fehler.

Gruß

Hardy


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: haw
Geschrieben am: 27.03.2008 14:11:23

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


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: haw
Geschrieben am: 27.03.2008 14:22:09

Hallo Hardy,
hier eine Testmappe, in der die Tabelle (!) Mappe1Test vorhanden ist
https://www.herber.de/bbs/user/51076.xls
Gruß
Heinz


  

Betrifft: AW: Spalten markieren wenn aktuelles Datum von: Hardy
Geschrieben am: 27.03.2008 14:37:34

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


 

Beiträge aus den Excel-Beispielen zum Thema "Spalten markieren wenn aktuelles Datum"