Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zellen formatieren ( Zellen verbinden )





Frage

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

Antwort 1 von rainberg

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

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

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