Diskussionsgruppe: Tabellenkalkulation
Hallo, ich möchte in einer Tabelle jeweils zwei nebeneinanderliegende Zellen markieren, die Zellen verbinden und den Inhalt zentrieren. z. B. C42:D42, C44:D44, E42:F42 usw. insgesamt sind es 24 Zellen, die so formatiert werden sollen. Mein Programmcode sieht so aus: 'Zellen verbinden und Zentrieren Range("C42:D42").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With Muß ich das für jede Zelle so aufzeichnen oder kann man daß irgendwie zusammenfassen ? Gruß Thomas
Von: manu661 Datum: 15.02.2007, 18:29
Antwort 1
von rainberg vom 15.02.2007, 22:25
Hallo Thomas,
wenn Du diese Prozedur mit dem Makrorecorder aufzeichnest, erhältst Du folgenden Code.
Sub Makro2() Range("C42:D42").Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge Selection.Copy Range("E42:Z42").Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False End Sub
Hierbei werden die Zellen bis Spalte Z verbunden.
Ich frage mich nur, warum Du dazu ein Makro brauchst, das ist doch mit "Formatübertragen" viel einfacher.
Gruß Rainer
Antwort 2
von coros vom 16.02.2007, 12:09
Hallo,
ich muss Reiner zustimmen, wozu Du das benötigst ist nicht ganz klar, denn iwe von Reiner beschrieben gehts auch anders. Aber das soll uns ja eigentlich egal sein. Allerdings hättest Du mal schreiben sollen, was bei Dir ".usw" bedeutet. Du machst eine Aufzählung C42:D42, C44:D44,E42:F42" und dann usw. Ich gehe mal davon aus, dass in Zeile 42 die nächsten Zellen G42:H42 wären und dass dann vortlaufend 24x? Wenn dem so ist, dann kopiere nachfolgendes Makro in ein StandardModul und starte es über z.B. eine Befehlsschaltfläche.
Option Explicit
Sub Autoverbinden() Dim i As Integer For i = 3 To 49 Step 2 With Range(Cells(42, i), Cells(42, i + 1)) .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With With Range(Cells(44, i), Cells(44, i + 1)) .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = True End With Next End Sub Ich hoffe, Du mientest das so. Wenn nicht, melde Dich nochmal.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
MfG, Oliver Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3
von manu661 vom 16.02.2007, 16:09
Hallo und vielen Dank an Reiner und Oliver. Ihr habt Recht, meine Angaben waren zu allgemein. >>ich muss Reiner zustimmen, wozu Du das benötigst ist nicht ganz klar, denn iwe von Reiner beschrieben gehts auch anders.<< Dieses Formatieren ist Teil eines Makros um eine Tabelle in die endgültige Form zu bringen. >>Du machst eine Aufzählung C42:D42, C44:D44,E42:F42" und dann usw. Ich gehe mal davon aus, dass in Zeile 42 die nächsten Zellen G42:H42 wären und dass dann vortlaufend 24x? << Das ist nicht der Fall, sondern es sollen folgende Zellen verbunden werden: C42:D42; E42:F42; C44:D44; E44:F44; C45:D45; E45:F45; C48:D48; E48:F48; C49:D49; E49:F49; C50:D50; E50:F50. Freundliche Grüße Thomas
|
07111
07112
07113
07114
07115
07116
07117
07118
|