1.6k Aufrufe
Gefragt in Tabellenkalkulation von ponscho Mitglied (323 Punkte)
Guten Morgen und ein tolles und geniales 2011 allen Forumsmitglidern!

Hallo an alle Helferlein, mit der SuFu habe ich zwar ein Makro gefunden, passt aber nicht für mein Problem, da ich es nicht an meine Bedürfnisse umzuändern weiss.

Würde gerne ab Zelle B2 jede zweite und dritte Spalte bis zum Ende markiert und mit der Spaltenbreite 1,57 formatiert haben. Zeile 1 und Spalte A sollen ihren Ursprung behalten.
Bsp: Spalte C und D, Spalte F und G, Spalte I und J, Spalte L und M, usw. Spaltenbreite 1,57.

Danach auch ab Zelle B2, mit Zeile 2 mit der Formatierung beginnend, jede 4. Zeile markieren und mit Zeilenhöhe 42 formatieren.
Bsp. Zeile 2, Zeile 6, Zeile 10, Zeile 14, usw. Zeilenhöhe 42 bis ca. Zeile 200.

Und zu guter Letzt ab Zeile 3 mit der Zeilenhöhe 52 auch jede 4. Zeile markieren und mit Zeilenhöhe 52 formatieren.
Bsp. Zeile 3, Zeile 7, Zeile 11, Zeile 15, usw. Zeilenhöhe 52 bis ca. Zeile 200.

Ist das realisierbar? Ich arbeite mit Excel 2002. Sollte ich Informationen unterschlagen oder nicht deutlich ausgedrückt haben, bitte ich dies zu entschuldigen.

Internette Grüsse
Mick

2 Antworten

0 Punkte
Beantwortet von theblackbird_ Mitglied (605 Punkte)
Moin,

Evtl. kannst Du auf folgendem Code weiter aufbauen. Ist zwar grottenlangsam, aber etwas schnelleres will mir aus dem Stand im Moment leider nicht einfallen.

Sub SheetFormat()
Dim rngGroup As Range
Dim lngCount As Long
Const lngFCol As Long = 2 'AusgangsSpalte (2=B)
Const lngFRow As Long = 2 'Ausgangszeile1
Const lngFRow2 As Long = 3 'Ausgangszeile2

With ActiveSheet 'auf der aktiven Tabelle
'===Spaltenbreite===
Application.ScreenUpdating = False 'Bildschirm aus
Set rngGroup = .Columns(lngFCol) 'Verweis auf Ausgangsspalte
rngGroup.Offset(, 1).Resize(, 2).ColumnWidth = 1.57 '2 Folgespalten auf Breite justieren

Do While rngGroup.Column + 5 <= .Columns.Count 'solang von akt. Ausgangspalte +5 <= MaxSpalte
Set rngGroup = rngGroup.Offset(, 3) 'schiebe Ausgangsspalte 3 nach rechts
rngGroup.Offset(, 1).Resize(, 2).ColumnWidth = 1.57 '2 Folgespalten auf Breite justieren
Loop

'===Zeilenhoehe1===
For lngCount = lngFRow To 200 Step 4 'Start bei lngFRow(=2) Ende bei 200 Schrittweite 4
.Rows(lngCount).RowHeight = 42 'Zeilenhoehe auf 42 stellen
Next lngCount
'===Zeilenhoehe2===
For lngCount = lngFRow2 To 200 Step 4 'Start bei lngFRow2(=3) Ende bei 200 Schrittweite 4
.Rows(lngCount).RowHeight = 52 'Zeilenhoehe auf 52 stellen
Next lngCount
Application.ScreenUpdating = True
End With

Set rngGroup = Nothing

End Sub


Cu TheBlackBird ®
0 Punkte
Beantwortet von ponscho Mitglied (323 Punkte)
Hallo TheBlackBird,

ich finde es garnicht "grottenlangsam". Finde es super so wie es ist und es funktioniert tadellos ;o)
Vielen Dank für Deine Mühe und das Bereit stellen!

Internette Grüsse
Mick
...