Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nebeneinanderliegende Zellen verbinden zentrieren

Nebeneinanderliegende Zellen verbinden zentrieren
01.08.2018 14:15:48
Mister
Moin liebes Forum,
Bitte hasst mich nicht dafür, aber ich möchte gleiche benachbarte Zellen in einer Zeile verbinden und zentrieren, damit ich die Tabelle schön formatiert drucken kann.
Folgendes Script ist aus einem Forum kopiert aber es zentriert den Text in den
verbundenen Zellen nicht.

Sub VerbindenNebeneinander()
Dim rngZelle As Range, intZähler As Integer, strAdresse As String
Application.DisplayAlerts = False
For Each rngZelle In ActiveSheet.UsedRange
If Not IsEmpty(rngZelle) Then
intZähler = 0
Do
strAdresse = rngZelle.Offset(0, intZähler).Address
intZähler = intZähler + 1
Loop Until rngZelle.Value  rngZelle.Offset(0, intZähler).Value
ActiveSheet.Range(rngZelle.Address, strAdresse).Merge
End If
Next
Application.DisplayAlerts = True
End Sub

Ich weiß dass man mit
.HorizontalAlignment = xlCenter

Text mittig darstellen kann aber nicht, wie ich das in das Script einsetze.
Vielen Dank voraus für Antworten :)
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nebeneinanderliegende Zellen verbinden zentrieren
01.08.2018 14:22:14
Torsten
Versuch mal:
Sub VerbindenNebeneinander()
Dim rngZelle As Range, intZähler As Integer, strAdresse As String
Application.DisplayAlerts = False
For Each rngZelle In ActiveSheet.UsedRange
If Not IsEmpty(rngZelle) Then
intZähler = 0
Do
strAdresse = rngZelle.Offset(0, intZähler).Address
intZähler = intZähler + 1
Loop Until rngZelle.Value  rngZelle.Offset(0, intZähler).Value
With ActiveSheet.Range(rngZelle.Address, strAdresse)
.Merge
.HorizontalAlignment = xlCenter
End With
End If
Next
Application.DisplayAlerts = True
End Sub
Ungetestet.
Gruss Torsten
Anzeige
AW: Nebeneinanderliegende Zellen verbinden zentrieren
01.08.2018 14:41:26
Mister
Ein fettes Dankeschön :)
hat geklappt
AW: Nebeneinanderliegende Zellen verbinden zentrieren
01.08.2018 14:50:05
Mister
Da war ich wohl etwas zu voreilig nun wird alles zentriert und es wäre wünschenswert, dass der Text nur in den neu verbundenen Zellen zentriert wird :)
LG
zu, da neuer Beitrag eröffnet
01.08.2018 19:37:16
robert
Anzeige
AW: zu, da neuer Beitrag eröffnet
01.08.2018 19:43:34
Mister
immer noch nicht gelöst
neuerer Beitrag ist zu
AW: zu, da neuer Beitrag eröffnet
02.08.2018 11:23:31
Mister
So habs selbst mit ein wenig Debuggen geschafft
Sub VerbindenNebeneinander()
Dim rngZelle As Range, intZähler As Integer, strAdresse As String
Application.DisplayAlerts = False
For Each rngZelle In Selection
If Not IsEmpty(rngZelle) Then
intZähler = 0
Do
strAdresse = rngZelle.Offset(0, intZähler).Address
intZähler = intZähler + 1
Loop Until rngZelle.Value  rngZelle.Offset(0, intZähler).Value
If rngZelle.Address  strAdresse Then
With ActiveSheet.Range(rngZelle.Address, strAdresse)
.Merge
.HorizontalAlignment = xlCenter
End With
End If
End If
Next
Application.DisplayAlerts = True
End Sub

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nebeneinanderliegende Zellen verbinden und zentrieren


Schritt-für-Schritt-Anleitung

Um nebeneinanderliegende Zellen in Excel zu verbinden und den Text in den verbundenen Zellen zu zentrieren, kannst du folgendes VBA-Skript verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub VerbindenNebeneinander()
       Dim rngZelle As Range, intZähler As Integer, strAdresse As String
       Application.DisplayAlerts = False
       For Each rngZelle In Selection
           If Not IsEmpty(rngZelle) Then
               intZähler = 0
               Do
                   strAdresse = rngZelle.Offset(0, intZähler).Address
                   intZähler = intZähler + 1
               Loop Until rngZelle.Value <> rngZelle.Offset(0, intZähler).Value
               If rngZelle.Address <> strAdresse Then
                   With ActiveSheet.Range(rngZelle.Address, strAdresse)
                       .Merge
                       .HorizontalAlignment = xlCenter
                   End With
               End If
           End If
       Next
       Application.DisplayAlerts = True
    End Sub
  4. Markiere die Zellen, die du verbinden möchtest.

  5. Führe das Makro aus, indem du F5 drückst oder über das Menü Ausführen das Makro startest.


Häufige Fehler und Lösungen

  • Problem: "Verbinden und zentrieren" ist ausgegraut.

    • Lösung: Stelle sicher, dass keine Zellen in der Auswahl geschützt sind oder dass du nicht versuchst, Zellen in einer gesperrten Tabelle zu verbinden.
  • Problem: Der Text wird in allen Zellen zentriert, nicht nur in den verbundenen.

    • Lösung: Überprüfe, ob das Makro korrekt die Adressen der Zellen verarbeitet. Das oben genannte Skript sorgt dafür, dass nur die verbundenen Zellen zentriert werden.

Alternative Methoden

Wenn du keine VBA-Skripte verwenden möchtest, kannst du die Funktion "Verbinden und zentrieren" manuell nutzen:

  1. Wähle die Zellen aus, die du verbinden möchtest.
  2. Gehe zur Registerkarte Start.
  3. Klicke auf das Dropdown-Menü von "Verbinden und zentrieren" und wähle "Zellen verbinden".

Beachte, dass diese Methode nur funktioniert, wenn du nicht mehrere Zellen mit unterschiedlichen Werten in der Auswahl hast.


Praktische Beispiele

Beispiel für das Verbinden und Zentrieren von Zellen in einer Excel-Tabelle:

  • Angenommene Zellen: A1 bis C1 enthalten den Text "Projektname".
  • Ziel: Diese Zellen verbinden und den Text zentrieren.

Verwende das VBA-Skript, um die Zellen zu verbinden und den Text zu zentrieren. Du wirst feststellen, dass der Text in der neuen verbundenen Zelle zentriert ist.


Tipps für Profis

  • Nutze die Selection-Objektvariable, um nur die aktuell markierten Zellen zu bearbeiten, was die Flexibilität deines Makros erhöht.
  • Wenn du oft Zellen verbinden und zentrieren musst, speichere das Makro in der Personal.xlsb-Datei, damit es in allen Arbeitsmappen verfügbar ist.
  • Überlege auch, die Formatierung der Zellen vor dem Verbinden zu ändern, um sicherzustellen, dass diese beim Verbinden erhalten bleibt.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur leere Zellen nicht verbunden werden?
Das Skript prüft, ob die Zelle leer ist, bevor es versucht, sie zu verbinden.

2. Was passiert, wenn ich mehr als zwei nebeneinanderliegende Zellen verbinde?
Das Skript kann mehr als zwei Zellen verbinden, solange sie den gleichen Wert haben. Andernfalls wird der Verbindungsvorgang abgebrochen.

3. Kann ich das Skript anpassen, um Zellen mit bestimmten Werten zu verbinden?
Ja, du kannst im Skript Bedingungen hinzufügen, um nur Zellen mit bestimmten Werten zu verbinden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige