Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen automatisch verbinden?

Zellen automatisch verbinden?
07.10.2021 15:11:38
Andreas
Hi zusammen,
würde gerne Zellen innerhalb einzelner Zeilen automatisch verbinden.
Hier meine Datei: https://www.herber.de/bbs/user/148493.xlsx
Wie viele Zellen am Stück verbunden werden sollen, steht in Spalte B.
Denke dafür brauche ich eine VBA?
Hoffe mir kann jemand helfen : )
Vielen Dank vorab
Gruß Andreas
Anzeige

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen automatisch verbinden?
07.10.2021 15:25:00
Daniel
Hi
Gehts nur darum, an der entsprechenden Linie einen Strich zu ziehen?
Das würde ich mit bedingter Formatierung machen.
Markiere die Zellen E2:DT8 und lege die Regelformel =E$1=$B2
Lege als Format den rechten Rahmen aus.
Fertig
Gruß Daniel
AW: Zellen automatisch verbinden?
07.10.2021 15:26:53
Andreas
Hi Daniel,
Danke für deinen Beitrag, aber die Zellen müssen definitiv verbunden werden.
https://www.herber.de/bbs/user/148493.xlsx
Gruß Andreas
Anzeige
AW: Zellen automatisch verbinden?
07.10.2021 15:39:30
UweD
Hallo
versuch es mal so...
- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Code rechts reinkopieren

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range
Dim St As Integer, En As Integer
Dim Anz As Variant, i As Integer
Set RNG = Range("D2:D8")
St = 5 'Start ab Spalte E
En = 124 'Ende bei Spalte DT
If Not Intersect(RNG, Target) Is Nothing Then
'Reset
Range(Cells(Target.Row, St), Cells(Target.Row, En)).UnMerge
Anz = Cells(Target.Row, 2)
If IsNumeric(Anz) Then
For i = St To En Step Anz
If i + Anz > En Then Anz = En - i + 1
Cells(Target.Row, i).Resize(1, Anz).Merge
Next
Else
MsgBox "Fehler in Eingabe"
End If
End If
End Sub
Bei Änderungen in dem Bereich D2:D8 läuft das Makro automatisch ab
LG UweD
Anzeige
AW: Zellen automatisch verbinden?
07.10.2021 17:12:40
Andreas
Hi Uwe,
vielen Dank, genau so sollte es sein : )
War ja aber nur eine Testdatei, weil ich euch meinen Sauhaufen nicht um die Ohren werfen wollte =D
Aber da bekomme ich es nicht zum laufen :(
Kannst du mir sagen, was ich falsch mache?
Hier meine Originaldatei: https://www.herber.de/bbs/user/148495.xlsm
Die Spalte aus der es die 1-7 auslesen soll, ist Spalte AA, die Spalten auf die es sich auswirken soll sind AD-ET.
Deinen Code habe ich soweit angepasst, wie mir das logisch war, aber funktioniert leider nicht :(
Falls du mir sagen könntest was ich falsch mache, wäre ich dir sehr Dankbar :)
Gruß und einen schönen Abend
Andreas
Anzeige
AW: Zellen automatisch verbinden?
07.10.2021 18:54:28
Werner
Hallo,
und weshalb 1-7 in Spalte AA ?
Du schreibst: Wieviele Spalten verbunden werden sollen steht jeweils in der Spalte AA
Trägst du dort 7 ein, dann werden auch nur 7 Spalten verbunden. Der ganze Block umfasst aber 17 Spalten?

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range
Dim St As Long, En As Long
Dim Anz As Long, i As Long
Application.ScreenUpdating = False
Set RNG = Range("AA4:AA78")
St = 30 'Start ab Spalte E
En = 132 'Ende bei Spalte DT
If Not Intersect(RNG, Target) Is Nothing Then
'Reset
Anz = Cells(Target.Row, "AA")
If IsNumeric(Anz) Then
If Anz > 1 And Anz 
Gruß Werner
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 08:30:55
Andreas
Hi Werner,
vielen Dank für deine Hilfe =D
Mein Fehler. Habe zuerst eine Testdatei gesendet gehabt, dort waren Infos drin, die ich in meiner zweiten (richtigen Datei, die die du kennst) dann nicht mehr erwähnt habe.
Und zwar, sagen die Zahlen 1-7 aus, wie viele Zellen hintereinander verbunden werden sollen.
Wird also in AA z.B. eine 1 eingetragen, sollen alle 120 Zellen (AD-ET) verbunden werden.
1 120 Zellen
2 60 Zellen
3 40 Zellen
4 30 Zellen
5 24 Zellen
6 20 Zellen
7 17 Zellen
Was mir auch erst danach klar geworden ist, dass von vorne rein immer schon 17 Zellen verbunden sind.
Das soll auch der Standartwert sein. Also das immer 17 verbunden sind und sich nur mehr verbinden, wenn eine 1-6 eingetragen wird.
https://www.herber.de/bbs/user/148495.xlsm
Vielen Dank vorab für deine Mühe und wäre schön wenn du mir den Code nochmal anpassen kannst :) Bin leider sehr unerfahren mit VBA.
Wünsche einen schönen Freitag
Gruß Andreas
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 08:20:20
UweD
Hallo
versuch es so.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range
Dim St As Integer, En As Integer, SpL As Integer
Dim Anz As Variant, i As Integer
'Bereich, wo dei Eingabe überwacht wird / gleich der Anzahlspalte
Set RNG = Range("AA4:AA70")
St = 30 'Start ab Spalte AD
En = 149 'Ende bei Spalte ES
SpL = 27 'Spalte mit Anzahl
If Not Intersect(RNG, Target) Is Nothing Then
With Application
.ScreenUpdating = False 'verhindert das Bildschirmflackern
.DisplayAlerts = False ' Schaltet die Warnmeldung aus
End With
'Reset
Range(Cells(Target.Row, St), Cells(Target.Row, En)).UnMerge
Anz = Cells(Target.Row, SpL)
If IsNumeric(Anz) Then
For i = St To En Step Anz
If i + Anz > En Then Anz = En - i + 1
Cells(Target.Row, i).Resize(1, Anz).Merge
Next
Else
MsgBox "Fehler in Eingabe"
End If
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End If
End Sub
Was mir aufgefallen ist, der Letzte Block umfasst 18 Spalten, die Anderen 17
LG UweD
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 08:40:30
Andreas
Guten Morgen Uwe,
vielen Dank für deine Unterstützung : )
Was mir auch erst gestern Abend klar geworden ist, dass von vorne rein immer schon 17 Zellen verbunden sein müssen.
Das soll auch der Standartwert sein. Also das immer 17 verbunden sind und sich nur mehr verbinden, wenn eine 1-6 eingetragen wird.
Daher kommen im letzten Block auch die 18. Hab einen gemeinsamen Teiler für die Zahlen 1-7 gebraucht, der keine Komma-Zahlen ergibt, gibt ja leider keine halben Zellen =D Bin also auf 120 gekommen:
1 120 Zellen (1*120 =120 Zellen)
2 60 Zellen (2*60 = 120 Zellen)
3 40 Zellen (3*40 = 120 Zellen)
4 30 Zellen (4*30 = 120 Zellen)
5 24 Zellen (5*24 = 120 Zellen)
6 20 Zellen (6*20 = 120 Zellen)
7 17 Zellen (7*17 = 119 Zellen) Geht leider nicht auf, deshalb kommt da noch eine Zelle dazu. Aber das muss in der VBA nicht berücksichtigt werden.
Wenn beim letzten Block auch nur 17 verbunden werden, ist das völlig i.O =D
https://www.herber.de/bbs/user/148495.xlsm
Falls du mir helfen kannst wäre super =)
Schönen Freitag und Gruß
Gruß Andreas
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 09:45:29
Werner
Hallo,
so?

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range, St As Long, En As Long, Anz As Long
Dim i As Long, j As Long, z As Long
Set RNG = Range("AA4:AA78")
St = 30
En = 132
If Not Intersect(RNG, Target) Is Nothing Then
If IsNumeric(Anz) Then
Anz = Cells(Target.Row, "AA")
If Anz > 0 And Anz 
Gruß Werner
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 13:48:34
Andreas
Hi Werner,
eher so: https://www.herber.de/bbs/user/148504.xlsm
Den Code hat mir Uwe gebaut.
Jetzt ist nur leider das nächste Problem aufgetreten =/
Vielleicht weißt du wie das gehen könnte?
In AA8 und AA10 muss eine 2 eintragen werden, da es dort z.B. jeweils 2 Blöcke pro Zeile sind.
Was ich nicht bedacht habe, ist das immer in der in der ersten Zelle der 17-Zellenblöcke eine Formel steht, die vergibt dann die Zahl von dem Block.
In AA8 habe ich also eine 2 eingetragen. Es wird AD-ET also in 2 Blöcke aufgeteilt. Der zweite Block bekommt aber keine Nummer mehr, weil die Formel für diesen Block schon in Zelle AU8 stand (Die erste Zelle von Block 2) Kann man das irgendwie schieben lassen?
In AA10 habe ich mal noch keine 2 eingetragen, damit du weißt was ich meine.
Wenn ich das hinbekomme ist es perfekt, vielleicht hast du ja eine Idee?
Gruß und schönen Nachmittag
Andreas
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 09:54:46
UweD
Noch ein Versuch

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RNG As Range
Dim St As Integer, En As Integer
Dim Anz As Variant, i As Integer
Dim Arr, MMax As Integer
Set RNG = Range("AA4:AA70") 'Bereich, wo die Eingabe überwacht wird
St = 30 'Start ab Spalte AD
En = 149 'Ende bei Spalte ES
MMax = 7 'maximaler Eingabewert
Arr = Array(0, 120, 60, 40, 30, 24, 20, 17) 'Datensatz Nr beginnen mit 0
If Not Intersect(RNG, Target) Is Nothing Then
'Prüfen auf Ganzzahl und  MMax, Target  Int(Target)
MsgBox "Falsche Eingabe"
Exit Sub
End Select
With Application
.ScreenUpdating = False 'verhindert das Bildschirmflackern
.DisplayAlerts = False ' Schaltet die Warnmeldung aus
End With
'Reset
Range(Cells(Target.Row, St), Cells(Target.Row, En)).UnMerge
Anz = Arr(Target)
For i = St To En Step Anz
If i + Anz > En Then Anz = En - i + 1
Cells(Target.Row, i).Resize(1, Anz).Merge
Next
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End If
End Sub
LG UweD
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 10:15:47
Andreas
Hi Uwe,
genau so hab ich mir das Vorgestellt, vielen Dank :D
Jetzt ist nur leider das nächste Problem aufgetreten =/
Vielleicht hat du dafür auch noch eine Lösung. https://www.herber.de/bbs/user/148504.xlsm
In AA8 und AA10 muss eine 2 eintragen werden, da es dort z.B. jeweils 2 Blöcke pro Zeile sind, das funktioniert ja auch super =D
Was ich nicht bedacht habe, ist das immer in der in der ersten Zelle der 17-Zellenblöcke eine Formel steht, die vergibt dann die Zahl von dem Block.
In AA8 habe ich also eine 2 eingetragen. Es wird AD-ET also in 2 Blöcke aufgeteilt. Der zweite Block bekommt aber keine Nummer mehr, weil die Formel für diesen Block schon in Zelle AU8 stand (Die erste Zelle von Block 2) Kann man das irgendwie schieben lassen?
In AA10 habe ich mal noch keine 2 eingetragen, damit du weißt was ich meine.
Falls du da noch eine Idee hast wäre ich dir sehr Dankbar. Wenn das nämlich noch klappt ist es perfekt =D
Gruß Andreas
Anzeige
AW: Zellen automatisch verbinden?
08.10.2021 13:39:51
UweD
Hallo
sorry, das ist mir jetzt zu hoch.
Wenn man in Excel Zellen verbindet, bleibt immer nur der Wert / Formel in der ersten Zelle erhalten. Alle Anderen werden gelöscht.
LG UweD
Ich lass die Frage mal offen
AW: Zellen automatisch verbinden?
08.10.2021 13:43:31
Andreas
Hi Uwe,
kein Problem, aber nochmal herzlichen Dank für deine Hilfe.
Das hat mich schon ein gutes Stück weiter gebracht : )
Wünsche dir ein schönes Wochenende.
Gruß Andreas
Anzeige
Ja, in Xl m.deiner StandardMethode, ...
08.10.2021 18:54:15
Luc:-?
…Uwe;
es gibt aber noch andere Möglichkeiten, die das simulieren, was in LOcalc standardmäßig erreichbar ist. Das wurde hier schon vor Jahren diskutiert und für Xl vorgestellt.
Gruß, Luc :-?
AW: Ja, in Xl m.deiner StandardMethode, ...
11.10.2021 08:13:49
Andreas
Guten Morgen Luc,
Danke für den Tipp.
Habe nach XI m excel gegoogelt. Kann aber nichts finden.
Kannst du mir erklären, was genau du damit meinst?
Das wäre super.
Vielen Dank vorab
Gruß Andreas
Anzeige
Xl~ bzw xl~ wird in VBA als Präfix für Namen ...
11.10.2021 11:54:44
Luc:-?
…von Excel-Konstanten verwendet, Andreas,
in Word wäre es Wd~/wd~ und analog bei anderen MSO-Programmen.
Gruß, Luc :-?
AW: Xl~ bzw xl~ wird in VBA als Präfix für Namen ...
11.10.2021 16:17:19
Andreas
Hey Luc,
Danke für deine Hilfe.
Habe viel gegoogelt, verstehe aber nicht wie genau mir das helfen kann.
Hast du mir vielleicht einen Link, wo ich genau das nachlesen könnte was du meinst?
Oder kannst du mir sagen, wie ich das als Lösungsansatz für mein Problem verwenden kann?
Stehe da leider gerade ziemlich auf dem Schlauch =/
Falls du mir helfen kannst/willst schonmal vielen Dank und einen schönen Feierabend.
Gruß Andreas
Anzeige
Ich nehme an, dass sich deine Anfrage ...
12.10.2021 03:49:45
Luc:-?
…nun auf meinen an Uwe gerichteten Hinweis bezieht, Andreas;
der bedeutet schlicht, dass die Xl-StandardMethode der ZellenVerbindung als reine Formatierungsoperation nicht vorsieht, dass eine VerbundZelle ggf verschiedene Formate ihrer FolgeEinzelZellen bewahrt und ebenso keine von Leer verschiedenen Werte in ihnen. Ebenso keine MatrixFmln, nicht einmal singulare (→ liefern nur einen ErgebnisWert — wie es in deiner Matrix-Spilling-Xl-Version damit aussieht, weiß ich nicht). Das ist sowohl manuell als auch per VBA-Methode ~.Merge der Fall. Entsprd lauten dann die FehlerMeldungen, falls anderes versucht wird.
Allerdings kann man in Xl und auch in VBA Formate übertragen (FormatPinsel!), was dazu führt, dass …
1. ein Change-Ereignis ausgelöst wird (sonst nicht!) und …
2. nur das Format einer vorformatierten (Verbund-)Zelle auf eine (bzw mehrere unverbundene) Zellen übertragen wird, wobei deren Wert- und FormelInhalte (auch MatrixFmln mit mehr als 1 ErgebnisWert) erhalten bleiben - und das ganz ohne Fehlermeldung. Letztere kommt erst, wenn man die VerbundZelle auf StandardWeise wieder auflösen will, ist dann aber bedeutungslos. Das fktioniert sowohl manuell als auch per VBA — nur nicht mit ~.Merge! Angezeigt wird aber stets nur der 1.Wert*.
* In LOcalc kann man dagegen auch bei normaler VerbundFormatierung entscheidem, ob nur der 1.Wert oder alle in ihren Zellen erhalten bleiben oder alle Werte in der 1.Zelle zusammengeführt wdn sollen. Beim Aufheben des Verbunds wdn auch alle OriginalFormate der EinzelZellen wiederhergestellt, in Xl aber nicht.
Leider habe ich trotz Ansicht deines Originals nicht ganz verstanden, worauf das hinausläuft und inwiefern hier VerbundZellen, die mehr als 1 Wert|Fml enthalten, erforderlich sind. Aber viell hilft dir ja mein Hinweis, dein Problem selbst zu lösen. Ansonsten gibt's im hiesigen Archiv auch 2 Beiträge (1er mit DemoCode für horizontale und 1er mit Programm für vertikale ZellVerbindung) mit BspCodes, deren LinkAdressen ich allerdings nicht gemerkt habe, weil zumindest der vertikale nicht von mir gepostet wurde und deshalb die ursprüngl vorhandene Erläuterung weitgehend fehlt. Falls an letzterem Beitrag ebenfalls Interesse deinerseits besteht (nach deiner BspMappe sieht es für mich aber nicht danach aus, dass das zur Anwendung kommen könnte), kann ich dir hier die WebAdresse des über WebArchives WayBackMachine erreichbaren OriginalBeitrags mitteilen, denn die Original-WebSite wurde längst gelöscht und das zugehörige Forum eingestellt.
Morhn, Luc :-?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen automatisch verbinden in Excel


Schritt-für-Schritt-Anleitung

Um Zellen in Excel automatisch zu verbinden, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und lade die Datei, in der du die Zellen verbinden möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Rechtsklicke auf das Tabellenblatt im Projektfenster und wähle „Code anzeigen“.

  4. Füge den folgenden VBA-Code ein:

    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim RNG As Range
       Dim St As Integer, En As Integer
       Dim Anz As Variant, i As Integer
       Set RNG = Range("D2:D8")
       St = 5 'Start ab Spalte E
       En = 124 'Ende bei Spalte DT
    
       If Not Intersect(RNG, Target) Is Nothing Then
           'Reset
           Range(Cells(Target.Row, St), Cells(Target.Row, En)).UnMerge
           Anz = Cells(Target.Row, 2)
           If IsNumeric(Anz) Then
               For i = St To En Step Anz
                   If i + Anz > En Then Anz = En - i + 1
                   Cells(Target.Row, i).Resize(1, Anz).Merge
               Next
           Else
               MsgBox "Fehler in Eingabe"
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und teste die Eingabe in den vorgesehenen Zellen.

Mit diesem Skript werden Zellen automatisch verbunden, basierend auf der Zahl, die du in den überwachten Zellen eingibst.


Häufige Fehler und Lösungen

  • Beim Verbinden von Zellen bleibt nur der oberste linke Wert erhalten: Das ist eine Standardfunktion von Excel. Wenn du Zellen verbindest, wird nur der Wert der ersten Zelle beibehalten. Stelle sicher, dass du die Zellen mit gleichem Inhalt zuerst überprüfst.

  • Excel-Zellen lassen sich nicht verbinden: Überprüfe, ob die Zellen in einem geschützten Bereich liegen oder ob sie formatiert sind, was das Verbinden verhindern kann.

  • Tastenkombinationen funktionieren nicht: Wenn die Excel-Shortcuts für das Verbinden von Zellen nicht funktionieren, überprüfe deine Excel-Einstellungen oder verwende die VBA-Methode als Alternative.


Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, gibt es alternative Methoden:

  • Bedingte Formatierung: Du kannst Zellen mit Linien verbinden, indem du die bedingte Formatierung verwendest. Markiere den Bereich und wähle den Rahmen aus, um so zu visualisieren, dass Zellen verbunden sind.

  • Excel-Zellen mit Linien verbinden: Gehe zu „Start“ > „Formatierung“ und wähle die gewünschte Linienart aus, um visuelle Verbindungen ohne tatsächliche Zellverbindung zu erstellen.


Praktische Beispiele

Wenn du Zellen in Excel automatisch verbinden möchtest, hier ein praktisches Beispiel:

  • Zellen verbinden, wenn gleicher Wert: Wenn du in Spalte AA eine Zahl eingibst, die die Anzahl der Zellen angibt, die verbunden werden sollen, kannst du das oben genannte VBA-Skript anpassen, um sicherzustellen, dass die Zellen entsprechend verbunden werden.

  • Beispiel für ein Makro: Verwende den folgenden Code, um zu überprüfen, ob die Zellen in der Zeile gleich sind, bevor du sie verbindest:

    If Cells(Target.Row, "AA").Value = Cells(Target.Row, "AA").Value Then
       'Zellen verbinden
    End If

Tipps für Profis

  • Excel-Shortcut Zellen verbinden: Du kannst die Tastenkombination ALT + H + M + M verwenden, um Zellen schnell zu verbinden. Dies kann in vielen Situationen nützlich sein, wenn du schnell arbeiten möchtest.

  • Verwendung von Formeln: Stelle sicher, dass du die Formeln in den verbundenen Zellen gut planst, da beim Verbinden der Zellen nur der Wert der ersten Zelle erhalten bleibt.

  • Zellenverbindung aufheben: Wenn du die Verbindung aufheben möchtest, kannst du die Tastenkombination ALT + H + M + U verwenden, um alle Zellen zu trennen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellen in Excel automatisch verbinden?
Verwende das VBA-Skript, um eine bestimmte Anzahl von Zellen basierend auf einer Eingabe zu verbinden.

2. Warum bleiben beim Verbinden von Zellen nur die Werte der ersten Zelle erhalten?
Das ist eine Standardfunktion von Excel. Es werden nur die Inhalte der ersten Zelle in der verbundenen Gruppe beibehalten.

3. Gibt es eine Möglichkeit, Zellen in Word zu verbinden?
Ja, du kannst die Tastenkombination ALT + H + M + M verwenden, um Zellen in Word zu verbinden.

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