Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro - für Formatierung

Makro - für Formatierung
02.12.2007 10:47:00
WalterK
Hallo,
ich suche einen Code für folgendes Problem:
1.) suche in den Bereichen D5:D35 und G5:G35 und J5:J35 das heutige Datum (wenn das heutige Datum vorhanden ist, kann es nur 1mal vorkommen)
2.) stelle die Hintergrundfarbe der gefundenen Zelle auf Rot und die Schriftfarbe auf Weiß
3.) formatiere ausgehend von der gefundenen Zelle die 2 linken Nachbarzellen ebenso wie oben angeführt
Beispiel:
heutiges Datum steht in G30
dann Format für G30 und F30 und E30 mit Hintergrundfarbe Rot und Schriftfarbe Weiß einstellen.
Hinweis: die 3 Möglichkeiten der bedingten Formatierung habe ich bereits ausgeschöpft und das will ich auch so belassen. Ist trotzdem noch eine Formatierung über VBA wie oben angeführt möglich? Wenn ja, wie?
Servus, Walter

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro - für Formatierung
02.12.2007 10:57:12
Uduuh
Hallo,
das geht auch mit bed. Formatierung
Für B5:D35: Formel ist =$D5=Heute() und Format entsprechend einstellen.
Gruß aus’m Pott
Udo

AW: Makro - für Formatierung
02.12.2007 11:01:46
WalterK
Hallo Udo,
die 3 Möglichkeiten der bedingten Formatierung habe ich bereits ausgeschöpft.
Über VBA wollte ich eine weitere Formatierung vornehmen lassen, ohne an den bereits angelegten bedingten Formatierungen etwas zu ändern.
Servus, Walter

AW: VBA Beispiel
02.12.2007 12:52:00
WalterK
Hallo Matthias,
das sieht schon ganz gut aus.
Zwei Fragen hätte ich noch:
1.) kann der Code geändert werden, sodass er gleich nach dem Öffnen ausgeführt wird und nicht per Schaltfläche gestartet werden muss und
2.) es funkt jetzt noch die gesetzte bedingte Formatierung dazwischen. Kann die bed. Formatierung für die betreffenden 3 Zellen aufgehoben werden?
Servus, Walter

AW: VBA Beispiel
02.12.2007 13:19:00
Gerd
Hallo Walter
Frage 1:

Private Sub Workbook_Open()  'Ins Modul DieseArbeitsmappe
Dim rngU As Range, rngGef As Range, rngZelle As Range, Ws As Worksheet
Set Ws = Worksheets("Tabelle1")
Set rngU = Union(Ws.Range("D5:D35"), Ws.Range("G5:G35"), Ws.Range("J5:J35"))
'Innenfarbe u. Schriftfarbe ggf. zurücksetzen
For Each rngZelle In rngU
If rngZelle.Font.ColorIndex = 2 Then rngZelle.Offset(0, -2).Resize(, 3).Font.ColorIndex = 1
If rngZelle.Interior.Color = vbRed Then rngZelle.Offset(0, -2).Resize(, 3).Interior. _
ColorIndex = xlNone: Exit For
Next
Set rngGef = rngU.Find(Date, LookIn:=xlFormulas, lookat:=xlWhole)
If Not rngGef Is Nothing Then
rngGef.Offset(0, -2).Resize(, 3).Font.ColorIndex = 2
rngGef.Offset(0, -2).Resize(, 3).Interior.Color = vbRed
End If
End Sub


Ich würde den Code allerdings entweder ins Worksheet_Change oder ins Worksheet_Calculate
der betreffenden Tabelle schreiben. Die Argumente der Find-Methode müssen eventuell angepasst
werden.
Noch offen wegen Frage 2
Gruß Gerd

Anzeige
AW: zu 2. offen
02.12.2007 15:34:20
WalterK
Hallo Matthias,
bei Deinem Beispiel für die 2. Frage wird aber in der betreffenden Zelle die VBA-Formatierung der bed. Formatierung nicht vorgezogen und darum wird die Zelle mit dem heutigen Datum nicht rot hinterlegt -- oder haben wir uns missverstanden?
https://www.herber.de/bbs/user/48176.xls
Servus, Walter

Anzeige
deshalb doch zu 2.) = noch offen ...
02.12.2007 20:12:00
Matthias
Hallo Walter
Da hast Du mich falsch verstanden.
2. offen bedeutet, ich habe noch keine Lösung zur 2.Frage. (genau wie bei Gerd)
deshalb hatten wir beide die Frage als "offen" stehen lassen.
(damit andere Helferlein darauf aufmerksam werden).
... und wieder wegen Frage 2 noch offen.
Userbild

AW: zu 2. offen
02.12.2007 20:34:00
Josef
Hallo Walter,
schmeis doch die Bedingte Formatierung raus und erledige alles per Code.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
Tabelle1.setColor
End Sub

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("input")) Is Nothing Or _
    Not Intersect(Target, Me.Range("bereich")) Is Nothing Then
    
    setColor
End If
End Sub

Sub setColor()
Dim rng As Range

For Each rng In Range("input")
    If rng.Offset(0, 1) = Date Then
        With Range(Cells(rng.Row, rng.Column - 1), Cells(rng.Row, rng.Column + 1))
            .Interior.ColorIndex = 3
            .Font.ColorIndex = 2
        End With
    Else
        With Range(Cells(rng.Row, rng.Column - 1), Cells(rng.Row, rng.Column + 1))
            .Interior.ColorIndex = xlNone
            .Font.ColorIndex = xlAutomatic
        End With
        Select Case rng.Text
            Case "x"
                rng.Offset(0, 1).Interior.ColorIndex = 34
            Case "y"
                rng.Offset(0, 1).Interior.ColorIndex = 8
            Case "z"
                rng.Offset(0, 1).Interior.ColorIndex = 33
        End Select
    End If
Next

End Sub

Gruß Sepp

Anzeige
AW: VBA Beispiel
02.12.2007 20:20:00
Daniel
Hi
man kann die bedingte Formatierung schon aufheben (ruhig mal den Makrorekorder benutzen, mit dem kann man so Fragen oft schnell beantworten:
Range(xxx).FormatConditions.Delete
allerdings ist sie dann für diesen Zellbereich weg, und muss bei bedarf erst wieder reingeschrieben werden.
Gruß, Daniel

AW: Halt!!
02.12.2007 21:06:15
WalterK
Hallo
jetzt wird es zu kompliziert:
@Josef:
das war nur eine Beispieldatei, die gesetzten bedingten Formatieren sind wesentlich komplizierter und können von mir nicht in VBA definiert werden
@alle:
Ich möchte mich bei allen für ihre Hilfe bedanken. Als Nicht-VBA-ler konnte ich eben nicht abschätzen, was für ein Programmieraufwand für so ein Detail notwendig ist. Da dieses Detail nur eine kosmetische Ergänzung zu meiner Datei dargestellt hätte, möchte ich hiermit mein Anliegen zurückziehen.
Besten Dank und Servus, Walter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige