Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1292to1296
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

VBA - jede zweite Zeile farbig - im best. Bereich!

VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 11:03:18
Dominic
Hi,
ich würde gerne im Tabellenblatt "Export" innerhalb eines bestimmten und variablen Zellbereiches, jede zweite Zeile den Hintergrund ( Füllung ) farbig erstellen und Rahmenlinien setzen.
Der Bereich geht im Tabellenblatt "Export" von B14:O67, oder B14:O80 oder B14:O95 je nachdem ob die Zelle B6 im Tabellenblatt "Überblick" den Wert 1, 2 oder drei beinhaltet.
Wie kann ich das mit VBA umsetzen?
Vielen Dank im Voraus!

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 11:16:04
Beverly
Hi Dominic,
Sub Faerben()
Dim lngZeile As Long
Dim lngEnde As Long
Select Case Worksheets("Überblick").Range("B6")
Case 1
lngEnde = 67
Case 2
lngEnde = 80
Case 3
lngEnde = 95
End Select
With Worksheets("Export")
For lngZeile = 14 To lngEnde Step 2
.Range(.Cells(lngZeile, 2), .Cells(lngZeile, 15)).Interior.Color = 12566463
Next lngZeile
End With
End Sub


AW: VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 11:22:11
Dominic
Hi Karin,
vielen Dank! Fehlen nur noch die Rahmenlinien. Hast du vielleicht auch einen Überblick welcher Farbcode in VBA welcher Farbe entspricht?
Vielen Dank! :)

Anzeige
AW: VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 11:28:20
Beverly
Hi Dominic,
den Code für die Rahmenlinien kannst du mit dem Makrorecorder aufzeichnen.
Eine Übersicht über die Farbcodes habe ich nicht. Die einfachste Variante zum Ermitteln: formatiere eine Zelle mit der entsprechenden Farbe und führe dann dieses Makro aus
Sub FuellFarbe()
MsgBox ActiveCell.Interior.Color
End Sub
Wenn es mehrere Farben sein sollen, dann einfach mehrere Zellen einfärben und in einer Schleife die Color-Nummer eintragen lassen.


Anzeige
AW: VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 11:34:57
fcs
Hallo Dominic,
hier mein Vorschlag.
Die Werte für die Farbwerte(Rot/Grün/Blau) kannst du auslesen wenn du die Zellfarben benutzerdefiniert einstellst.
Gruß
Franz
Sub ZeilenExportFormatieren()
Dim Zeile As Long, ZeileEnde As Long
'Zeilenbereich ermitteln der formatiert werden soll
Select Case ActiveWorkbook.Worksheets("Überblick").Range("B6").Value
Case 1: ZeileEnde = 67
Case 2: ZeileEnde = 80
Case 3: ZeileEnde = 95
Case Else
MsgBox "Unzulässiger Wert im Blatt ""Übersicht"" Zelle B6"
Exit Sub
End Select
With ActiveWorkbook.Worksheets("Export")
'Farben und Rahmen im gesamten Bereich zurücksetzen
Application.ScreenUpdating = False
With .Range("B16:O95")
.Interior.ColorIndex = xlColorIndexNone
.Borders.LineStyle = xlLineStyleNone
End With
'Jede 2. Zeile formatieren
For Zeile = 16 To ZeileEnde Step 2
With .Range(.Cells(Zeile, 2), .Cells(Zeile, 15))
'          .Interior.Color = VBA.RGB(Red:=255, Green:=255, Blue:=112) 'hellgelb
.Interior.Color = VBA.RGB(Red:=153, Green:=255, Blue:=204) 'hellblau
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
End With
End With
Next Zeile
Application.ScreenUpdating = True
End With
End Sub

Anzeige
AW: VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 13:28:47
Dominic
Hi Franz,
danke funktioniert einwandfrei. Kannst du den Code vielleicht noch so abändern, dass zwar jede zweite Zeile im jeweiligen Bereich mit der entsprechenden Farbe hinterlegt wird, aber jede(!) Zeile einen Rahmen erhält?
Danke im Voraus!

AW: VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 14:03:38
Dominic
Okay, hab es bereits selbst geschafft. Danke nochmal!

AW: VBA - jede zweite Zeile farbig - im best. Bereich!
15.01.2013 14:08:02
fcs
Hallo Dominic,
hier das Makro entsprechend angepasst, so dass alle Zellen im Bereich mit Rahmen formatiert werden.
Gruß
Franz
Sub ZeilenExportFormatieren()
Dim Zeile As Long, ZeileEnde As Long
'Zeilenbereich ermitteln der formatiert werden soll
Select Case ActiveWorkbook.Worksheets("Überblick").Range("B6").Value
Case 1: ZeileEnde = 67
Case 2: ZeileEnde = 80
Case 3: ZeileEnde = 95
Case Else
MsgBox "Unzulässiger Wert im Blatt ""Übersicht"" Zelle B6"
Exit Sub
End Select
With ActiveWorkbook.Worksheets("Export")
'Farben und Rahmen im gesamten Bereich zurücksetzen
Application.ScreenUpdating = False
With .Range("B16:O95")
.Interior.ColorIndex = xlColorIndexNone
.Borders.LineStyle = xlLineStyleNone
End With
'Jede 2. Zeile farbig formatieren
For Zeile = 16 To ZeileEnde Step 2
With .Range(.Cells(Zeile, 2), .Cells(Zeile, 15))
'          .Interior.Color = VBA.RGB(Red:=255, Green:=255, Blue:=112) 'hellgelb
.Interior.Color = VBA.RGB(Red:=153, Green:=255, Blue:=204) 'hellblau
End With
Next Zeile
'Rahmen im Zellbereich einfügen
With .Range(.Cells(16, 2), .Cells(ZeileEnde, 15))
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
End With
End With
Application.ScreenUpdating = True
End With
End Sub

Anzeige

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige