Excel: Zelleigenschaft beibehalten

  • #1
B

Balu

Bekanntes Mitglied
Themenersteller
Dabei seit
01.02.2003
Beiträge
383
Reaktionspunkte
0
Ort
Die Weiten von Mittelfranken
Hi,
ich bin grad am Tüfteln bei einer Tabelle. Zwecks besserer Lesbarkeit soll jede 5. Zeile grau hinterlegt sein.
Konsequenterweise soll natürlich die graue Farbe in der 5., 10., 15... Zeile beibehlaten bleiben, wenn oberhalb eine/mehrere Zeile/n eingefügt werden.

Kennt da jemand einen Kniff? ???

Merci

edit: Mit Format übertragen (die Pinselschaltfläche in der Symbolleiste) kann ich zwar das Format manuell übertragen, aber ich muss ja dann trotzdem nachbessern.
 
  • #2
Probier mal folgendes und modifizier es nach bedarf.
Ist auf eine 5 Spalten breite Tabelle angelegt.
Die Tabelle darf keine Leerzeilen enthalten
Solange in einer Zeile was vorhanden ist, wird jede fünfte Zeile grau gemacht.
Code:
Jede_fünfte_Zeile_grau()

    Range(A1).Select
    Range(ActiveCell, ActiveCell.Offset(0, 4)).Select
    With Selection.Interior
        .ColorIndex = 15
        .Pattern = xlSolid
    End With
    ActiveCell.Offset(5, 0).Select
    Selection.Activate
    Do While ActiveCell <>  Or ActiveCell.Offset(0, 1) <>  Or ActiveCell.Offset(0, 2) <>  Or ActiveCell.Offset(0, 3) <>  Or ActiveCell.Offset(0, 4) <> 
    Range(ActiveCell, ActiveCell.Offset(0, 4)).Select
    With Selection.Interior
        .ColorIndex = 15
        .Pattern = xlSolid
    End With
    ActiveCell.Offset(5, 0).Select
    Selection.Activate
    Loop
End Sub
 
  • #3
Hi zusammen,

hab zu diesem Thema auch ein Makro gebaut.

Hat zwar etwas länger gedauert, dafür ist er etwas flexibler:
- Tabell kann leere Zeilen enthalten
- benutzter Bereich wird automatisch festgestellt

Gruß Matjes :)
Code:
Private Sub JedeXteZeileGrauHinterlegen()
' Ab der erste Wertezeile werden zunächst alle Zeilen
' mit dem Zellhintergrund farblos vorbesetzt.
' Dann wird die erste Wertezeile und jede weiter xte
' grau hinterlegt

  Const c_ZeileErsterMitWert = 2
  Const c_ZeileJedeXteInterval = 5
  Const c_ZeileFarbe = 15->15=hellgrau, 48=grau, 16=dunkelgrau

  Dim l_rows As Long, l_cols As Long, x As Long
  Dim ws As Worksheet
  
  Set ws = ActiveSheet

 ->Zeile/Spalte der letzten von Excel benutzten Zelle feststellen
  l_rows = ws.Cells.SpecialCells(xlCellTypeLastCell).Row
  l_cols = ws.Cells.SpecialCells(xlCellTypeLastCell).Column
  
 ->Bereich Hintergrung -> farblos
  ws.Range(ws.Cells(c_ZeileErsterMitWert, 1), _
          ws.Cells(l_rows, l_cols)).Interior.ColorIndex = xlColorIndexNone

 ->Zeile/Spalte der letzten von Excel benutzten Zelle korrigieren
  For x = l_cols To 1 Step -1
    If Application.WorksheetFunction.CountA( _
      ws.Range(ws.Cells(c_ZeileErsterMitWert, x), ws.Cells(l_rows, x))) _
    Then
      l_cols = x: Exit For
    End If
  Next
  For x = l_rows To c_ZeileErsterMitWert Step -1
    If Application.WorksheetFunction.CountA( _
      ws.Range(ws.Cells(x, 1), ws.Cells(x, l_cols))) _
    Then
      l_rows = x: Exit For
    End If
  Next

 ->jede Xte Zeile mit farbigem Hintergrund versehen
  For x = c_ZeileErsterMitWert To l_rows Step c_ZeileJedeXteInterval
    With ws.Range(ws.Cells(x, 1), ws.Cells(x, l_cols)).Interior
      .ColorIndex = c_ZeileFarbe: .Pattern = xlSolid
    End With
  Next
  
  Set ws = Nothing
End Sub
 
  • #4
:) :)

Hey, Ihr seid klasse.

Danke schön.
 
Thema:

Excel: Zelleigenschaft beibehalten

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben