Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Ich steh grad total aufm Schlauch

Betrifft: Ich steh grad total aufm Schlauch von: Maximilian
Geschrieben am: 02.11.2012 12:51:15

Guten Tag!

Ich habe eine Tabelle mit einer Spalte Datum nach der auch sortiert wird.

Es kommen also erst alle mit 25.10.2012 dann 26.10.2012 usw.

Ich möchte nun immer die Datumsblöcke abwechselnd per VBA einfärben.

Ich habe nur leider keine Idee, wie ich so einen Block erfassen kann.

Habe eine Schleife, die die Einträge durchgeht, aber wie prüfe ich, ob der aktuelle Block, in dem ich gerade bin, sich farbig oder nicht farbig gehört.

Das habe ich bisher zusammengestöbselt, gibt sicher eine einfache Lösung

        Dim M As Boolean
        M = True
        For i = 4 To Sheets(1).UsedRange.Rows.Count
            If CDate(Cells(i, 5).Value) >= CDate(Cells(i - 1, 5).Value) Then
                If M Then M = False
                Else: M = True
            End If
            If M Then Mark (i)
        Next

  

Betrifft: AW: Ich steh grad total aufm Schlauch von: UweD
Geschrieben am: 02.11.2012 13:04:04

Hallo

ich habe dafür ein Universalmakro

- Bereich vorher markieren
...

Sub Gruppe_grau()
    Dim Reihe, Merk As Boolean, Col As Variant, SP$, Spalte%, RR&
    RR = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile des gesamten  _
Blattes
    SP = InputBox("Gruppenwechsel in welcher Spalte?", , "A")
    Spalte = Asc(UCase(SP)) - 64
    If Spalte > Selection.Columns.Count Or Spalte < Selection.Columns.Column Then
         MsgBox "Spalte nicht in Selection"
         Exit Sub
    End If
    For Each Reihe In Selection.Rows
        If Reihe.Row = 1 Then GoTo weiter
        If Reihe.Row > RR Then Exit Sub
        If Cells(Reihe.Row, Spalte) <> "" And Cells(Reihe.Row, Spalte) <> _
            Cells(Reihe.Row - 1, Spalte) Then
            Merk = Not Merk
        End If
        Col = IIf(Merk = True, 19, xlNone)
        With Reihe.Interior
            .ColorIndex = Col
        End With
weiter:
    Next
End Sub

Gruß UweD


  

Betrifft: AW: Ich steh grad total aufm Schlauch von: Dieter
Geschrieben am: 02.11.2012 13:38:32

Hallo Maximilian,

das geht auch ohne Makro mit bedingter Formatierung:
Formel ist: =MONAT(A1)/2=RUNDEN(MONAT(A1)/2;0) und Muster vergeben
Gegebenfalls A1 mit der richtigen Zelle austauschen

Schönes Wochenende

Dieter