vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Word   |   VB-Versionen: VBA19.08.15
Tabellen zeilenweise alternierend färben; VBA Word (2007)

Der Tipp als VBA-Projekt zeigt das Färben von Tabellenzeilen in alternierenden Farben

Autor:   Dietrich HerrmannBewertung:     [ Jetzt bewerten ]Views:  7.363 
ohne HomepageSystem:  WinXP, Win7, Win8, Win10, Win11 Beispielprojekt 

Dieser Tipp ist eher für VBA-Beginner gedacht, um ein paar Programmierprinzipien zu veranschaulichen. Denn es gibt in Word 2007 auch die integrierte Funktion Tabellen-Layout, wo man verschiedene voreingestellte Farblayouts nutzen kann. Allerdings enthält unser Tipp noch eine zusätzliche Funktion:

  • Die Anwendung eines ColorDialogs
  • Das Einfärben von Zeilen als Zeilengruppen in Abhängigkeit von Werten in einer definierten Spalte. Die Tabelle muss nach den Werten in dieser Spalte sortiert sein.
  • Weiterhin werden im Tipp die Verwendung von Variablen in einem Word-Dokument demonstriert als auch die Verwendung von animiertem GIF in einem WebbrowserControl (als Waiting-Graphic).

Hier die Funktion für das Einfärben von Zeilen:

' Erzeugen gefärbter Zeilengruppen (alternierend)
' entweder in Anzahl von Zeilen oder auf Grund von Werten in spezieller Spalte
' in Word-Tabellen
' tb: Nummer der Word-Tabelle
' art: Art der Einfärbung
' farbe1: erste Farbe
' farbe2: zweite Farbe
' tit: mit|ohne Einbeziehung von Titelzeilen
' titA: Anzahl der Titelzeilen
' sp: Spaltennummer für Vergleich bei Färbung nach Werten
' vglAnz: alle Vergleichswerte in sp anzeigen oder nicht
Public Sub TableColoringAlternateRows(tb As Integer, art As Integer, _
  farbe1 As Long, farbe2 As Long, tit As Boolean, titA As Integer, _
  sp As Integer, vglAnz As Boolean)
 
  Dim specStr As String
  Dim lastValue As String, aktValue As String
  Dim cFarbe As Long
 
  If tit Then a = titA Else a = 0
  lastValue = ""
  rowAnz = ActiveDocument.Tables(tb).Rows.Count
    For i = 1 + a To rowAnz
      With ActiveDocument.Tables(tb).Rows(i).Shading
        Select Case art
          Case 1  ' einzeilig
            If i Mod 2 = titA - 1 Then
              .BackgroundPatternColor = farbe1
            Else
              .BackgroundPatternColor = farbe2
            End If
 
          Case 2  ' zweizeilig
            If i Mod 4 = titA - 1 Or i Mod 4 = titA Then
              .BackgroundPatternColor = farbe2
            Else
              .BackgroundPatternColor = farbe1
            End If
 
          Case 3  ' dreizeilig
            If i Mod 6 = titA + 1 Or i Mod 6 = titA + 2 Or i Mod 6 = titA + 3 Then
              .BackgroundPatternColor = farbe1
            Else
              .BackgroundPatternColor = farbe2
            End If
 
          Case 4  ' vierzeilig
            If i Mod 8 = titA + 1 Or i Mod 8 = titA + 2 Or i Mod 8 = titA + 3 Or i Mod 8 = titA + 4 Then
              .BackgroundPatternColor = farbe1
            Else
              .BackgroundPatternColor = farbe2
            End If
 
          Case 5  ' nach Werten
            specStr = ActiveDocument.Tables(tb).Rows(i).Cells(sp).Range.text
            specStr = Left(specStr, Len(specStr) - 2)   ' einkürzen nötig wegen Tabellenzellen-Notation
            aktValue = specStr
            If lastValue = "" Or lastValue <> aktValue Then
              lastValue = aktValue
              If cFarbe = farbe1 Then cFarbe = farbe2 Else cFarbe = farbe1    ' Farbwechsel
'                If vglAnz = False Then
'                  ActiveDocument.Tables(tb).Rows(i).Cells(sp).Range.text = ""
'                End If
              End If
              .BackgroundPatternColor = cFarbe
        End Select
      End With
      DoEvents
    Next 
  selection.StartOf unit:=wdTable
End Sub

Dieser Tipp wurde bereits 7.363 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel