Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen / Zeilen per VBA formatieren?

Zellen / Zeilen per VBA formatieren?
10.02.2007 19:07:51
Selma
Hallo Excel-Freunde,
ich möchte wie folgt die Zellen / Zeilen formatieren:
a) Wenn in Spalte A in Zelle der Text "$TYP:" vorkommt bzw. steht, dann diese Zelle und die Zelle rechts daneben in orange Farbe mit dünnen Rahmen darstellen.
b) Die Zeile unter dem Text "$TYP:" bis zum letzten Eintrag (bezogen auf Spalte dieser Zeile) in graue Farbe mit dünnen Rahmen darstellen.
c) alle andere Zeilen (bis erste leere Zelle kommt / bezogen auf Spalte A) in grüne Farbe mit dünnen Rahmen darstellen.
Die letzte Spalte die farbig dargestellt werden soll ist die aus b)
Ich füge eine Beispieldatei mit Arbeitsblätter VORHER / NACHHER.
https://www.herber.de/bbs/user/40318.xls
Wie mache ich das per VBA, da ich an ca. 50 Dateien diese Formatierung durchführen möchte?
Vielen Dank im Voraus...
Liebe Grüße
SELMA

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen / Zeilen per VBA formatieren?
11.02.2007 10:03:45
stormy_weathers
Hallo SELMA
mir scheint Du möchtest die Formatierungen der Daten einmalig durchführen.
Dazu kannst Du einen Bereich (den mit den meisten Zeilen; am besten legst Du Dir ein Muster an) kopieren. Dann markierst Du den Zielbereich und mit der rechten Maustaste das Kontext-Menü aktivieren. Mit "Inhalte einfügen" kannst Du dann nur die Formate übertragen.
Wenn ich heute mal noch ein paar minuten Zeit finde, versuche ich Dir das ganze mal per VBA zu lösen.
Kannst Dir in der Zwischenzeit auch mal versuchen das ganze mit dem Makrorekorder aufzuzeichnen und dann zusammenkopieren.
Gruß
stormy
Anzeige
AW: Zellen / Zeilen per VBA formatieren?
11.02.2007 10:17:52
fcs
Hallo Selma,
nachfolgend Makros, die sytematisch die Formarierung durchführen.
Lege eine neue Exceldatei an und öffne den VBA-Editor.
Im VBA-Editor fügst du ein Modul ein und kopierst den Code der Makros in das Editor-Fenster des Moduls.
Datei speichern und Makro-Starten.
Im angezeigten Datei-Auswahlkatalog kannst du eine oder mehrere Dateien auswählen.
Beim Speichern der formatierten Dateien werden die Original-Dateien überschrieben. Falls das nicht gewünscht ist, dann vor der Aktion die zu formatierenden Dateien in ein separates Verzeichnis kopieren.
Gruss
Franz

Sub Formatierung()
'Systematische Formatierung von Zellen in gewählten Dateien
Dim wb As Workbook, wks As Worksheet, Zeile As Long, ZeileL As Long, Spalte As Integer
Dim strWb, j As Integer, i As Integer
Do
'Arbeitsmappe(n) auswählen, die formatiert werden sollen, _
Mehrfachauswahl im Dialog ist möglich
strWb = Application.GetOpenFilename(Filefilter:="Excel (*.xls), *.xls", _
Title:="Bitte Datei(en) für Formatierung auswählen, Abbrechen beendet das Makro", _
MultiSelect:=True)
If Not IsArray(strWb) Then Exit Sub 'Abbrechen wurde im Dialog gewählt
'Gewälte Dateien abarbeiten
For j = LBound(strWb) To UBound(strWb)
Set wb = Workbooks.Open(Filename:=strWb(j))
Application.ScreenUpdating = False
'Alle Blätter der Arbeitsmappe formatieren
For i = 1 To wb.Worksheets.Count 'to auf 1 setzen wenn immer nur das 1. Blatt formatiert werden soll
Set wks = wb.Worksheets(i)
With wks
Zeile = 1
ZeileL = .Cells(.Rows.Count, 1).End(xlUp).Row 'Letzte Zeile mit Daten
Do
'Zeile mit "$TYP:" suchen
Do Until .Cells(Zeile, 1).Value = "$TYP:"
If Zeile > ZeileL Then GoTo NextBlatt
Zeile = Zeile + 1
Loop
'Typ-Zellen formatieren
.Range(.Cells(Zeile, 1), .Cells(Zeile, 2)).Font.Bold = True
Call RahmenFarbe(.Range(.Cells(Zeile, 1), .Cells(Zeile, 2)), 45, xlContinuous, xlHairline)
'Überschrift-Zeile formatieren
Zeile = Zeile + 1
Spalte = .Cells(Zeile, .Columns.Count).End(xlToLeft).Column 'Letzte Spalte in Überschriftzeile
.Range(.Cells(Zeile, 1), .Cells(Zeile, Spalte)).Font.Bold = True
Call RahmenFarbe(.Range(.Cells(Zeile, 1), .Cells(Zeile, Spalte)), 15, xlContinuous, xlHairline)
'Daten-Zeilen formatieren
Do Until IsEmpty(.Cells(Zeile + 1, 1))
If Zeile > ZeileL Then GoTo NextBlatt
Zeile = Zeile + 1
.Cells(Zeile, 1).Font.Bold = True
Call RahmenFarbe(.Range(.Cells(Zeile, 1), .Cells(Zeile, Spalte)), 35, xlContinuous, xlHairline)
Loop
Loop
End With
NextBlatt:
Next i
Application.ScreenUpdating = True
'Datei speichern und schließen
wb.Save
wb.Close
Next j
Loop
End Sub
Sub RahmenFarbe(Bereich As Range, Farbe, LinieStil, LinieBreite)
'Farbe und Linien des Zellbereichs formatieren
With Bereich
.Interior.colorindex = Farbe
.BorderAround LineStyle:=LinieStil, Weight:=LinieBreite
With .Borders(xlInsideVertical)
.LineStyle = LinieStil
.Weight = LinieBreite
End With
End With
End Sub

Anzeige
AW: Zellen / Zeilen per VBA formatieren?
11.02.2007 16:24:47
Selma
LG
Selma

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige