Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zentrieren via VBA

Zentrieren via VBA
24.06.2021 11:56:17
Helmut
Mahlzeit da draußen, mit Folgenden Code zentriere ich den Text in den Zellen

If Target.Column = 14 Then  'Zeilenumbruch in Spalte N
With Selection
.WrapText = True
End With
End If
With ActiveCell  ' Range("B6:m109") 'ausrichten der Zellen
.HorizontalAlignment = xlCenter
.HorizontalAlignment = xlLeft
End With
Leider ist es so, dass hier mehrere Mitarbeiter zugriff auf diese Datei haben und wenn ich sie zum xsten mal öffne, ist die Zentrierung wieder futsch. Was läuft da falsch? Besten dank im voraus LG Helmut
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zentrieren via VBA
24.06.2021 12:08:03
Daniel
HI
naja, du zentrierst hier mit diesem Code nicht, sondern du richtest nach links aus.
wenn du die selbe Eigenschaft mehrfach setzt, gilt immer die zuletzt gemachte Einstellung und das ist bei dir xlLeft.
schreibst du Code für das Change-Event, so solltest du beachten das hier Selection und ActiveCell in der Regel nicht mit Target identisch sind.
Target ist immer die geänderte Zelle, wenn du die Zelle mit der Cursortaste verlässt oder eingestellt hast, dass nach ENTER automatisch zu einer Nachbarzelle gesprungen werden soll, dann ist eben diese die ActiveCell und die Selection und nicht die Zelle, die du geändert hast.
wenns bei dir funktioniert und bei deinen Kollegen nicht, dann könnte es daran liegen, dass deine Kollegen die Makros nicht aktivieren, wenn sie mit der Datei arbeiten.
Gruß Daniel
Gruß
Anzeige
AW: Zentrieren via VBA
24.06.2021 12:37:50
Helmut
Servus Daniel, dankeschön für deine Antwort, verstehe leider nur BHF! LEVEL: VBA nur mit Recorder.
Alle haben die Makros aktiviert, dass wurde kontrolliert! Hast du denn ein paar Zeilen für mich, die das ins reine bringen? LG Helmut
AW: Zentrieren via VBA
24.06.2021 13:05:33
Daniel
naja, wenn ich dir erst sage:
"gehe in die Mitte vom Zimmer"
und danach
"gehe an die linke Wand"
und du führst alles brav aus, stehst du dann am Ende in der Mitte vom Zimmer oder an der Linken Wand?
Gruß Daniel
Anzeige
AW: Zentrieren via VBA
24.06.2021 13:21:59
Helmut
Dann fehlt mir das Wort und darin! Nur weis ich nicht wie das geht!
AW: Zentrieren via VBA
24.06.2021 13:34:53
Daniel
und brauchst du in VBA auch nicht.
aber wenn man sich diesen Codeteil anschaut, Grundlegenden Englischkenntnisse hat und zumindest Ansatzweise verstanden hat wie Programmierung funktioniert, dann sollte eigentlich klar sein, warum der Code links und nicht in der Mitte steht:

.HorizontalAlignment = xlCenter
.HorizontalAlignment = xlLeft
das ist genau das was ich dir gesagt habe, zuerst der Befehl "geh in de Mitte" und danach der Befehl "geh nach Links"
ist doch logisch, was davon die Folge ist.
Gruß Daniel
Anzeige
AW: Zentrieren via VBA
24.06.2021 13:40:46
Yal
Helmut,
probier es einfach:
erste Alignment auskommentieren (Hochkomma rein), probieren. Schauen was passiert ist.

'.HorizontalAlignment = xlCenter
.HorizontalAlignment = xlLeft
erste de-auskommentieren (Hochkomma raus), zweite auskomentieren (Hochkomma rein), probieren. Schauen was passiert ist. Verstehen.

.HorizontalAlignment = xlCenter
'.HorizontalAlignment = xlLeft
Let's go.
VG
Yal
Anzeige
AW: Zentrieren via VBA
24.06.2021 13:36:50
Zwenn
Hallo Helmut,
Du hast folgende beiden Zeilen in Deinem Code:

.HorizontalAlignment = xlCenter
.HorizontalAlignment = xlLeft
Dabei ist HorizontalAlignment der Befehl zur Ausrichtung. Hinter dem Gleichheitszeichen steht, wie die Ausrichtung sein soll. In der ersten Zeile wird zentriert und anschließend wird sofort eine Ausrichtung nach links vorgenommen. Dadurch wird die Zentrierung direkt wieder überschrieben.
Die Lösung dieses Problems ist also das ersatzlose Löschen der Zeile .HorizontalAlignment = xlLeft
Viele Grüße,
Zwenn
Anzeige
AW: Zentrieren via VBA
24.06.2021 14:17:12
Helmut
Dankeschön für die Zahlreiche HIFE, leider kann ich noch kein Ergebnis Verzeichnen, daher Frage ich anders: Ich möchte die Inhalte der Spalten "C - N" linksbündig und horizontal in der Mitte ausgerichtet haben. Vielleicht klappt es jetzt!? LG Helmut
AW: Zentrieren via VBA
24.06.2021 14:29:41
Daniel
Das geht nicht!!!!!
Entweder links ODER in der mitte, da musst du dich entscheiden.
Beides gleichzeitig ist unmöglich.
Kann es sein, dass du horizontal links und vertikal in der Mitte ausrichten willst?
Das wäre wiederum möglich, weil horizontal und vertikal zwei unterschiedliche Eigenschaften sind.
Horizontal = links - Mitte - rechts
Vertikal = oben - Mitte - unten
Gruß Daniel
Anzeige
AW: Zentrieren via VBA
24.06.2021 14:37:18
Yal
Moin Helmut,
wenn die eine Eigenschaft "HorizontalAlignement" heisst, wie könnte die andere heissen?
VerticalAlignment

Sub test()
With Me.Range("C:N")
.HorizontalAlignment = xlHAlignLeft
.VerticalAlignment = xlVAlignCenter
End With
End Sub
VG
Yal
Anzeige
Funktioniert! brauche jedoch eine Erläuterung!
24.06.2021 15:13:02
Helmut
Servus Yal, DAS WAR DIE LÖSUNG!!!!!!! Vielen dank dafür, könntest du mir eventuell noch die beiden Wörter xlHAlignLeft und xlVAlignCenter genauer Erläutern?
Danke auch an Daniel und Zwenn!
AW: Funktioniert! brauche jedoch eine Erläuterung!
24.06.2021 15:31:12
Rudi
Hallo,
das sind interne Konstanten
xlHAlignLeft = -4131
xlVAlignCenter = -4108
xlLeft und xlCenter würde auch gehen.
Gruß
Rudi
Anzeige
AW: Funktioniert! brauche jedoch eine Erläuterung!
24.06.2021 15:31:42
Daniel
Das sind von System bereit gestellte Konstanten, hinter denen die Zahlen stecken, über die man die entsprechende Eigenschaft einstellt.
Die Einstellung erfolgt nämlich über Zahlen (1 = Links, 2 = Rechts, Zahlen nur beispielhaft)
Da man sich aber schlecht merken kann, ob jetzt 1 für links steht oder nicht doch für rechts, hat MS diese Konstanten eingeführt, die man alternativ verwenden kann, was du ja auch selber gemacht hast.
Über den sprechenden Text sieht man sofort, was man da gemacht hat und muss nicht erst nach schauen, für was 1 denn steht.
Bei den konstanten gibts natürlich viele Überschneidungen, was den dahintrrstehenden Zahlenwert betrifft.
Wenns mehrere Konstanten gibt, ist es egal welche du verwendet, Hauptsache die dahinter stehende Zahl stimmt.
Gruß Daniel
Anzeige
AW: Funktioniert! brauche jedoch eine Erläuterung!
24.06.2021 15:38:53
Yal
Hallo Helmut,
wenn Du den Cursor auf das Wort HorizontalAlignment legst und Strg+F1 drückst, kommst Du auf die Online Hilfe für dieses Wort. Leider in dem Fall ohne Beispiel (meistens mit).
In der Mitte der Seite gibt es eine Hinweis, welche Wert es nehmen kann:
"Der Wert dieser Eigenschaft kann auf eine der XlHAlign-Konstanten festgelegt werden."
und auf XlHAlign-Konstanten kann man klicken. Da kommt man auf
https://docs.microsoft.com/de-de/office/vba/api/excel.xlhalign
Im Hintergrund verwendet VBA (und andere Programmiersprachen) Zahlen, um zustände zu beschreiben. Rot:3, Grün:4. Da es aber leichter ist, sich Rot oder Grün zu merken, anstatt 3 und 4, gibt es solche "benannte Werte". Für fast jeden Eigenschaft gibt es im Hintergrund solche Auflistung ("Enumeration").
also hier: xlHAlignLeft
xl weil es eine Excel-spezifische Wert ist (wd für Word, ac für Access, mso für Office, usw)
H für Horizontal
Align für Alignment ("Ausrichtung")
Left für links
Dass xlHAlignLeft -4131 entspricht, ist uns komplett wurst.
Aber diese Runterbrechen hilft nur zu verstehen worum es geht, und den Code leserlicher zu machen, kann aber keinesfalls verwendet werden, um diese benannten Wert selber zu rekonstruieren. Im manche Fälle kommt doch mit Strg+Leertaste einen Auswahlliste.
Deswegen: Strg+F1
VG
Yal
Anzeige
Dankeschön
24.06.2021 15:57:38
Helmut
Dankeschön nochmals an alle auch für die ausführliche Erklärung, bleibt gesund!!! LG Helmut
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Text Zentrieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um Text in Excel mittels VBA zu zentrieren, kannst du den folgenden Code verwenden. Dieser Code richtet den Text horizontal und vertikal in den Zellen von Spalte C bis N aus:

Sub TextZentrieren()
    With Me.Range("C:N")
        .HorizontalAlignment = xlHAlignCenter  ' Horizontal zentrieren
        .VerticalAlignment = xlVAlignCenter    ' Vertikal zentrieren
    End With
End Sub

Achte darauf, dass du die Konstanten xlHAlignCenter und xlVAlignCenter verwendest, um die Ausrichtung zu bestimmen. Wenn du nur horizontal zentrieren möchtest, kannst du die vertikale Ausrichtung weglassen.


Häufige Fehler und Lösungen

  1. Fehler: Mehrfaches Setzen der HorizontalAlignment-Eigenschaft

    • Wenn du sowohl .HorizontalAlignment = xlCenter als auch .HorizontalAlignment = xlLeft verwendest, wird nur die letzte Einstellung wirksam. Um den Text korrekt zu zentrieren, entferne die Zeile mit xlLeft.
  2. Problem: Makros aktivieren

    • Stelle sicher, dass alle Benutzer die Makros aktiviert haben. Ohne aktivierte Makros funktioniert der VBA-Code nicht.

Alternative Methoden

Du kannst auch die Excel-Oberfläche nutzen, um den Text zu zentrieren:

  1. Markiere die Zellen, die du zentrieren möchtest.
  2. Klicke im Menü auf "Start".
  3. Wähle unter "Ausrichtung" die Optionen für horizontale und vertikale Ausrichtung aus.

Diese Methode ist besonders nützlich, wenn du keinen VBA-Code verwenden möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Textausrichtung in verschiedenen Szenarien verwenden kannst:

  • Nur horizontal zentrieren:
Sub HorizontalZentrieren()
    With Me.Range("C:N")
        .HorizontalAlignment = xlHAlignCenter
    End With
End Sub
  • Text in einer Word-Tabelle zentrieren:

Wenn du in einer Word-Tabelle zentrieren möchtest, kannst du die folgenden Einstellungen verwenden:

With ActiveDocument.Tables(1).Range
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
End With

Tipps für Profis

  • Verwenden von Konstanten: Nutze die benannten Konstanten wie xlHAlignCenter und xlVAlignLeft, um deinen Code leserlicher zu machen.
  • Verstehen von Eigenschaften: Vertraue dich mit den Eigenschaften HorizontalAlignment und VerticalAlignment an, um die Ausrichtung präzise anzupassen.
  • Online-Hilfe: Nutze die Online-Hilfe in Excel für spezifische Eigenschaften und deren Verwendung, indem du Strg + F1 drückst.

FAQ: Häufige Fragen

1. Wie kann ich den Text in einer Zelle vertikal zentrieren? Um Text vertikal zu zentrieren, verwende die Eigenschaft VerticalAlignment:

.VerticalAlignment = xlVAlignCenter

2. Was bedeutet xlHAlignLeft und xlVAlignCenter? xlHAlignLeft steht für eine linksbündige Ausrichtung und xlVAlignCenter für eine vertikale Zentrierung. Diese Konstanten machen den Code verständlicher und leichter zu handhaben.

3. Kann ich den Text sowohl horizontal als auch vertikal zentrieren? Ja, du kannst beide Eigenschaften gleichzeitig verwenden, um den Text sowohl horizontal als auch vertikal auszurichten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige