Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
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
Inhaltsverzeichnis

aktualisieren beim Start der Mappe

aktualisieren beim Start der Mappe
Thomas
Hallo zusammen,
ich habe eine Tabelle in der ich in der ersten Spalte Maschinen habe, in der zweiten steht ein Datum das farblich hinterlegt ist. Rot für überfällige, gelb für fällige und grün für noch Zeit der Inspektion.
Die Farben werden mir anhand des Datums ausgewählt über eine Select Case Anweisung, siehe Beispiel unten. Nun möchte ich, wenn die Mappe geöffnet wird, dass die Zellen automatisch aktualisiert werden. Kann mir einer von euch ein Tipp geben?
Gruß
Thomas
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim D As Date
D = [C1]
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub
Select Case Target.Value
'bei Leer, keine Hintergrundfarbe
Case Empty
Target.Interior.ColorIndex = 0
'bei kleiner als Hintergrundfarbe rot
Case Is  D
Target.Interior.ColorIndex = 4
'bei gleich Hintergrundfarbe gelb
Case Is = D
Target.Interior.ColorIndex = 6
End Select
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: aktualisieren beim Start der Mappe
28.07.2011 20:52:46
fcs
Hallo Thomas,
warum Makro-Lösung, wenn es mit bedingter Formatierung auch geht?
In der Makrolösung muss du die Prozeduren etwas aufteilen.
Die von mir an der Formatierungs-Prozedur gemachte Änderung passt auch Änderungen in mehreren Zellen der Spalte 2 an.
Gruß
Franz
 'Code unter DieseArbeitsmappe
Private Sub Workbook_Open()
With Worksheets("Tabelle1")
Call Formatieren(Bereich:=.Range(.Cells(2, 2), .Cells(.Rows.Count, 2)), Datum:=.Range("C1")) _
End With
End Sub
'Code  im Tabellenblatt-Modul
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Prüfung des geänderten Zellbereichs
If Target.Row > 1 And Target.Column = 2 And Target.Columns.Count = 1 Then
Call Formatieren(Bereich:=Target, Datum:=[C1])
End If
End Sub
'Code in einem allgemeinen Modul
Public Sub Formatieren(Bereich As Range, Datum As Date)
Dim Zelle As Range
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
For Each Zelle In Bereich
Select Case Zelle.Value
'bei Leer, keine Hintergrundfarbe
Case Empty
Zelle.Interior.ColorIndex = 0
'bei kleiner als Hintergrundfarbe rot
Case Is  Datum
Zelle.Interior.ColorIndex = 4
'bei gleich Hintergrundfarbe gelb
Case Is = Datum
Zelle.Interior.ColorIndex = 6
End Select
Next Zelle
End Sub

Anzeige
AW: aktualisieren beim Start der Mappe
28.07.2011 21:08:58
Thomas
Hallo Franz,
danke dir für die Hilfe.
Mit der bedingten Formatierung habe ich gewisse Probleme.
Das mit den Farben geht ja, nur wenn ich den Wert wieder aus der Zelle lösche, hat die Zelle eine Hintergrundfarbe obwohl sie transparent sein sollte. In Excel 2003 kann man ja nur 3 bedingte Formatierungen eingeben, deswegen Makro. Wenn du mir eine Lösung geben könntest wäre ich dir dankbar.
Gruß
Thomas
AW: aktualisieren beim Start der Mappe
28.07.2011 21:28:03
Thomas
Hallo Franz,
kann den Code von dir nicht ganz umsetzten, bin nicht so fit was das betrifft.
Der Bereich in dem die Datums stehen ist E5:AC149. In wie weit muss ich den Code ändern.
Danke dir schon im Voraus.
Gruß
Thomas
Anzeige
AW: aktualisieren beim Start der Mappe
28.07.2011 22:01:42
fcs
Hallo Thomas,
hier die beiden anzupassenden Prozeduren:
'Code unter DieseArbeitsmappe
Private Sub Workbook_Open()
With Worksheets("Tabelle1")
Call Formatieren(Bereich:=.Range("E5:AC149"), Datum:=.Range("C1"))
End With
End Sub
'Code Tabellenblatt-Modul
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Prüfung des geänderten Zellbereichs
If Not Intersect(Target, Range("E5:AC149")) Is Nothing Then
Call Formatieren(Bereich:=Intersect(Target, Range("E5:AC149")), Datum:=[C1])
End If
End Sub

Gruß
Franz
AW: aktualisieren beim Start der Mappe
29.07.2011 06:51:52
Thomas
Hallo Franz,
Danke dir für die schnelle hilfe.
Gruß
thomas
Anzeige
AW: aktualisieren beim Start der Mappe
29.07.2011 13:04:28
Thomas
Hallo Franz,
wollte dir noch einmal danken, hast mir sehr viel weiter geholfen.
Das haut ja alles sehr gut hin, nur mit der gelb Färbung geht nur auf den aktuellen Tag.
Gut wäre es wenn der der ganze Monat also 0711 gelb ist und nicht nur den aktuellen Tag.
Danke dir jetzt schon für deine Hilfe.
Gruß
Thomas
AW: aktualisieren beim Start der Mappe
29.07.2011 17:19:09
fcs
Hallo Thomas,
wenn du monatsweise die Datumsangaben formatieren willst dann muss du die Formatier-Prozedur anpassen.
Gruß
Franz
Public Sub Formatieren(Bereich As Range, Datum As Date)
'Datum in den Zellen des Bereiches mit dem Vorgabe-Datum vergleichen und Zellen formatieren
'Datum in früherem Monat als Vorgabe-Datum --> Hintergrundfarbe rot
'Datum in gleichem Monat wie Vorgabe-Datum --> Hintergrundfarbe gelb
'Datum in späterem Monat als Vorgabe-Datum --> Hintergrundfarbe grün
Dim Zelle As Range, Datum1 As Date, Datum2 As Date
For Each Zelle In Bereich
If IsEmpty(Zelle) Then
Zelle.Interior.ColorIndex = 0
ElseIf IsDate(Zelle) Then
Datum1 = DateSerial(Year(Datum), Month(Datum), 1)
Datum2 = DateSerial(Year(Zelle.Value), Month(Zelle.Value), 1)
If Datum2  Datum1 Then Zelle.Interior.ColorIndex = 4
If Datum2 = Datum1 Then Zelle.Interior.ColorIndex = 6
End If
Next Zelle
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige