aximand
Goto Top

EXCEL VBA Zellen verbinden. MERGE

Hallo Mitglieder,

ich verzweifel gerade an einem Problem, was mich schon 'Stunden' kostet.

Ich habe in einem Tabellenblatt Daten stehen, die sich auf eine Kalenderwoche beziehen. Es kann natürlich mehrere Zeilen pro KW geben.
Ich möchte nun das Tabellenblatt durchlaufen und alle die Zellen Lx-Ly, sowie Mx-My verbinden, sofern von x-y der Eintrag in Ax identisch ist.

Ich habe das auf dem angefügten Bild versucht zu visualisieren.

Kann mir da vielleicht ein jemand eine Hilfestellung geben?

Dass ich mit Range.Cells.Merge in gewisser Weise arbeiten muss ist mir klar, da ich mit fixen Werten zum gewünschten Ergebnis komme. Ich bekomme aber die Zusammenhänge nicht auf die Kette, damit das ganze auch flexibel ist wenn sich z.B. Einträge in der Spalte KW ändern.

Danke fein, ihr lieben!
merge

Content-Key: 338561

Url: https://administrator.de/contentid/338561

Printed on: April 19, 2024 at 12:04 o'clock

Member: colinardo
colinardo May 22, 2017 updated at 08:25:30 (UTC)
Goto Top
Servus @Aximand .
Bitteschön: auto_merge_on_change_338561.xlsm

Die Merge-Bereiche ändern sich im Demo-Sheet automatisch wenn sich in Spalte A etwas ändert (Event: Worksheet_Change!).
Danke fein, ihr lieben!
Bitte fein mein Lieber face-wink

Grüße Uwe

Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Member: Aximand
Aximand May 22, 2017 at 08:44:01 (UTC)
Goto Top
Oh Herre, mit der Lösung kann ich nix anfangen. Also sie scheint genial zu sein, aber ich durchblicke das ned.

Hinzu kommt, dass die Daten über ein Userform in die Liste eingetragen werden. Das muss ich mir erstmal auf der Zunge und im Schädel zergehen lassen. Wie toll doch VBA ist :P
Member: colinardo
colinardo May 22, 2017 updated at 09:00:39 (UTC)
Goto Top
Zitat von @Aximand:
Oh Herre, mit der Lösung kann ich nix anfangen.
Danke auch face-sad. *Koppschüttel* ....
Also sie scheint genial zu sein, aber ich durchblicke das ned.
Ganz einfach, das Makro regiert automatisch darauf wenn sich in Spalte A etwas ändert und baut dann die Merge-Bereiche neu auf. Habe es ja extra deswegen alles ausführlich kommentiert.
Hinzu kommt, dass die Daten über ein Userform in die Liste eingetragen werden. Das muss ich mir erstmal auf der Zunge und im Schädel zergehen lassen. Wie toll doch VBA ist :P
Du kannst das von mir aus auch manuell ausführen die Sub sieht dann so aus:
Sub AutoMerge()
    On Error Goto Errhandler
    Dim rngGroupStart As Range, cell As Range
    Application.ScreenUpdating = False
    With ActiveSheet
        'start festlegen  
        Set rngGroupStart = .Range("A5")  
        'Verbindungen der Spalten M:L lösen  
        .Range("M:L").UnMerge  
        'Für jede Zelle von A5:A(ENDE)  
        For Each cell In .Range("A5:A" & .Cells(Rows.Count, "A").End(xlUp).Row)  
            ' Wenn die Zelle drunter einen anderen Wert hat als vom Gruppenstart  
            If cell.Offset(1, 0).Value <> rngGroupStart.Value Then
                'Wenn mindestens zwei Zellen betroffen sind, starte Merge  
                If (cell.Row - rngGroupStart.Row) > 0 Then
                    'Merge in Spalten M und L vornehmen  
                    .Range(.Cells(rngGroupStart.Row, "L"), .Cells(cell.Row, "L")).Merge  
                    .Range(.Cells(rngGroupStart.Row, "M"), .Cells(cell.Row, "M")).Merge  
                End If
                'nächsten Gruppenstart festlegen  
                Set rngGroupStart = cell.Offset(1, 0)
            End If
        Next
    End With
Errhandler:
    Application.ScreenUpdating = True
End Sub
Hoffentlich ist das jetzt "genehm", ansonsten weiß ich dir leider nicht mehr zu helfen, außer dir einen VBA Kurs zu empfehlen.
Mitglied: 132895
132895 May 22, 2017 updated at 08:59:19 (UTC)
Goto Top
Oh Herre, mit der Lösung kann ich nix anfangen.
WOW, mein lieber Herr Gesangsverein, da bekommt man es schon auf dem Silbertablet und auch noch kommentiert und bekommt sowas an den Kopf geworfen. ECHT DER HAMMER face-sad face-sad, da weiß man echt nicht mehr was man sagen soll!
Fettes -1.

Gruß
Member: Aximand
Aximand May 22, 2017 updated at 09:22:49 (UTC)
Goto Top
Halloooo, das mit dem "nichts anfangen" ist falsch motiviert, meinerseits. Ich kann damit schon was anfangen, da es ja die Lösung ist. Ich kann bezüglich meines vorhandenen Wissens nichts damit anfangen, weil ich es (noch) nicht verstehe. Ist etwas missverständlich geschrieben, sorry
Mitglied: 132895
132895 May 22, 2017 at 10:00:58 (UTC)
Goto Top
Ich kann bezüglich meines vorhandenen Wissens nichts damit anfangen, weil ich es (noch) nicht verstehe.
Nun, wenn keiner weiß was du daran nicht verstehst kann dir auch niemand helfen.