Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1740to1744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Range.Merge

VBA: Range.Merge
19.02.2020 11:10:03
Axel
Hallo zusammen,
dank der hervorragenden Unterstützung dieses Forums habe ich in der unten stehenden Musterdatei ein funktionierendes Makro einbinden können.
https://www.herber.de/bbs/user/135279.xlsm
Das Makro ist bereits ausgeführt. Ich möchte nun im Tabellenblatt1 in den Spalten A, B und C die jeweils gleichen Blöcke zusammenfassen (Verbinden und Zentrieren).
Grundsätzlich geht das gem. Makroeditor mit Range.Merge, aber wie identifiziere ich die jeweiligen gleichen Werte, also die zusammen zu fassenden Ranges?
Nochmals vielen Dank vorab für eure Hilfe.
Beste Grüße
Axel

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Range.Merge
19.02.2020 12:24:13
Axel
Ich hab mal einen Ansatz gefunden, der einen Denkanstoß für die VBA-Kenner liefern könnte:
Sheets("Tabelle1").Select
Range("A12").Select
Do Until ActiveCell.Value = False
If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
ActiveCell.Offset(0, -6).Value = ActiveCell.Offset(1, 0).Value
ActiveCell.Offset(1, 0).Value = Empty
ActiveCell.Offset(2, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Dieses "Do Until ActiveCell.Value = False" und das als Loop hört sich für mich schon mal gut an. Was danach gemacht wird, verstehe ich nicht und irgenmdwo müsste dann auch noch stehen, dass die Zellen mit dem selben Inhalt verbunden und zentriert werden.
Ich hoffe, das hilft irgendjemandem.
Danke vorab und Gruß
Axel
Anzeige
AW: VBA: Range.Merge
19.02.2020 13:39:54
Axel
Hallo nochmal,
ich habe mal etwas Code zusammenkopiert, der natürlich nicht funktioniert, aber vielleicht jemandem hilft, der sich mit VBA auskennt:
Public Sub Zellen_verbinden()
Tabelle1.Activate
Range("A12").Select
Do Until ActiveCell.Value = False
If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
Range("A12:A15").Select 'das müsste vom Makro identifiziert werden
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
ActiveCell.Offset(1, 0).Value = ActiveCell.Offset(1, 0).Value
ActiveCell.Offset(1, 0).Value = Empty
ActiveCell.Offset(2, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub

Wenn ich irgendwie unterstützen kann, schreibt bitte in diesen Thread.
Vielen Dank an alle Helfer.
Axel
Anzeige
AW: VBA: Range.Merge
20.02.2020 10:55:35
hary
Moin
Probier mal.
Sub Zellen_verbinden()
Dim i As Long, anfang As Long, ende As Long
Tabelle1.Activate
anfang = 12
For i = 12 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) = Cells(i + 1, 1) Then
ende = i
Else
Application.DisplayAlerts = False
Range(Cells(anfang, 1), Cells(ende + 1, 1)).MergeCells = True
Range(Cells(anfang, 2), Cells(ende + 1, 2)).MergeCells = True
Range(Cells(anfang, 3), Cells(ende + 1, 3)).MergeCells = True
With Range(Cells(anfang, 1), Cells(ende + 1, 3))
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
anfang = i + 1
End If
Next
Application.DisplayAlerts = True
End Sub

gruss hary
Anzeige
gelöst
20.02.2020 11:36:45
Axel
Hi hary,
Du bist der Held des Tages.
Das ist genau, was ich suchte.
Ich hatte in der Zwischenzeit auch schon was ausprobiert, kam aber nicht ins Ziel.
Ich schau mir Deinen Code noch mal genau an und werde versuchen zu verstehen, was wo passiert.
Auf jeden Fall tausend Dank!!!
Gruß
Axel
AW: VBA: Range.Merge
20.02.2020 11:51:03
Axel
hary, ich muss leider noch mal nachfragen.
In der Spalte C funtioniert der Zellverbund noch nicht richtig.
Hast Du eine Idee, wo der Fehler liegt?
Ich bin definitiv überfragt.
Danke und Gruß
Axel
AW: VBA: Range.Merge
20.02.2020 12:05:25
hary
Moin
Was genau funtioniert nicht in SpalteC. es werden doch die Zellen verbunden. Verbundzellen sind gemaess SpalteA.



Tabelle1
 ABC
10ThemaUnterthema1Unterthema2
11
12Leichtleichteram leichtesten
13
14
15
16Schwerschwereram schwersten
17
18
19
20

 verbundene Zellen 
A10:A11
B10:B11
C10:C11
A12:A15
B12:B15
C12:C15
A16:A20
B16:B20
C16:C20

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.02 einschl 64 Bit

gruss hary
Anzeige
AW: VBA: Range.Merge
20.02.2020 12:11:57
Axel
Hi hary,
sorry, vielleicht habe ich mich auch nicht richtig ausgedrückt.
Guck mal, hier noch mal die Datei mit Deinem Makro
https://www.herber.de/bbs/user/135309.xlsm
In Spalte B und C sollen nur die jeweils gleichen Bezeichnungen zusammengefasst werden, unabhängig von Spalte A, es werden aber die Zellen analog der Verbindung aus Spalte A zusammengefasst mit dem jeweils ersten Begriff aus der jeweiligen Verbindung.
Warte, ich lade mal das IST und Soll separat hoch.
gruß
Axel
AW: VBA: Range.Merge
20.02.2020 12:18:58
Axel
hary, bitte guck mal, hier habe ich Ursprungsformat, Format nach Deinem Makro und Zielformat untereinander aufgelistet:
https://www.herber.de/bbs/user/135311.xlsm
So wird es deutlicher.
Und ich danke Dir für Deine Mühe unendlich.
Gruß
Axel
Anzeige
AW: VBA: Range.Merge
21.02.2020 06:47:01
hary
Moin Axel
Sry, aber ich komm meist morgens zum schreiben.
Jetzt sollte es klappen.
Sub Zellen_verbinden()
Dim i As Long, anfang As Long, ende As Long, spalte As Long
Dim bereich As Range
Tabelle1.Activate
For spalte = 1 To 3
anfang = 12
For i = 12 To Cells(Rows.Count, spalte).End(xlUp).Row
If Cells(i, spalte) = Cells(i + 1, spalte) Then
ende = i
Else
Application.DisplayAlerts = False
ende = i
Set bereich = Range(Cells(anfang, spalte), Cells(ende, spalte))
If anfang 

gruss hary
final gelöst
21.02.2020 07:57:39
Axel
Guten Morgen hary,
tausend Dank für Deine Unterstützung.
Ich hab's jetzt eingesetzt und getestet und es funktioniert.
Ohne Dich hätte ich das nie hinbekommen.
Ich weiß Deine Hilfe wirklich zu schätzen.
Schönes Wochenende
Axel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige