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

Formatierung

Formatierung
14.09.2005 13:51:37
Klaus
Hallo zusammen
Ich versuche es nochmals, da ich mich wohl nicht verständlich ausgedrückt habe. Ich habe eine umfangreiche Tabelle mit Daten von A9:S....... (ist variabel). die Datensätze werden optisch durch eine Strich unter dem Datensatz (Rahmen unten) getrennt (Tabelle1). Nun möchte ich mit zwei Füllfarben die Datensätze zusätzlich optisch trennen.
Das ganze sollte dann ungefähr so aussehen, wie in Tabelle2
Geht soetwas?
https://www.herber.de/bbs/user/26564.xls
Gruss Klaus

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung
14.09.2005 14:54:33
Volker
Hallo Klaus,
der folgende Code tut's wie gewünscht.
Public

Sub zeilen_faerben()
Dim last_col, i, j, farbe As Integer
last_col = ActiveSheet.UsedRange.Columns.Count
farbe = 35
j = 1
i = IIf(Cells(1, 1) <> "", 1, Cells(1, 1).End(xlDown).Row)
While Cells(i, 1) <> ""
j = Columns("A").Find("Ergebnis", after:=Cells(j, 1)).Row
Range(Cells(i, 1), Cells(j, last_col)).Interior.ColorIndex = farbe
farbe = IIf(farbe = 35, 36, 35)
i = j + 1
Wend
End Sub

Gruß
Volker
AW: Formatierung
15.09.2005 12:58:21
Klaus
Hallo Volker
Ich hoffe, du liest noch meine späte Antwort auf deine Lösung. Es klappt wunderbar. Ich komme nur mit dem Code überhaupt nicht klar, könntest du mir eine kurze Erklärung dazu senden, denn ich möchte schon verstehen, wie das geht.
Nochmals vielen Dank für deine Hilfe
Gruss Klaus
Anzeige
AW: Formatierung
15.09.2005 14:04:29
Volker
Hallo Klaus,
freut mich, wenns funzt.
Ich hab mal unter jede Zeile einen 'Kommentar geschrieben

Sub zeilen_faerben()
Dim last_col, i, j, farbe As Integer
'4 Ganzzahlvariablen, die benötigt werden
last_col = ActiveSheet.UsedRange.Columns.Count
'=Index der letzten benutzen Spalte im Tabellenblatt (z.B Spalte O hat Index 20)
'weiß nicht mehr, wie breit deine Tabelle war
farbe = 35
'der Var für die Hintergrungfarbe wird ein Wert zugeordnet
j = 1
'i und j werden als Zähler für den Zeilenindex benutzt
i = IIf(Cells(1, 1) <> "", 1, Cells(1, 1).End(xlDown).Row)
'wenn A1 nicht leer, dann i=1, sonst i=Index der 1. nichtleeren Zeile von oben
While Cells(i, 1) <> ""
'solange Zelle Ai (=Range("A"&i) nicht leer
j = Columns("A").Find("Ergebnis", after:=Cells(j, 1)).Row
,j=Zeilenindex der 1. Zelle mit "Ergebnis" unterhalb Zeile i
Range(Cells(i, 1), Cells(j, last_col)).Interior.ColorIndex = farbe
'Bereich Range("A"&i) bis Range("O"&j) wird mit Farbe 35 eingefärbt
farbe = IIf(farbe = 35, 36, 35)
'wenn farbe=35, dann farbe=36, sonst farbe=35. Nach jeder Färbeaktion wechselt die Farbe
i = j + 1
'i=zeilenindex der Zelle mit "Ergebnis" + 1 ==> Beginn nächster Block
'Sollte Zelle(Ai) leer sein, also letzter Block gefärbt, ist Abbruchbedingung
'für Schleife erreicht (s.o.)
Wend
'zurück zu while......
End Sub

Mal ein Tip für Anfänger: wenn du dich im VBA Editor befindest, kannst du mit F8 den Code schrittweise abarbeiten. Ma kann also verfolgen, welche Zeile was in der Tabelle bewirkt. Wenn du mit dem Cursor über eine Variable gehst, wird dir deren Wert angezeigt.
Beides ist zum Debuggen sehr nützlich.
Noch was: Der Makrorekorder ist nicht nur für Anfänger. Die meisten hier sind zwar in VBA fortgeschritten, aber deswegen keine wandelnden VBA-Handbücher. Man muß eben wissen, wo man suchen muß. Die wenigsten kennen die ganze Syntax auswendig, sondern benutzen häufig auch den Rekorder und passen das Ergebnis an. Das gilt auf jeden Fall für mich.
Viele Grüße und immer schön am Ball bleiben
Volker
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige