🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Merge von Feldern per Makro

CALC ist die Tabellenkalkulation, die Sie immer wollten.
akoerber
Beiträge: 197
Registriert: Di 4. Okt 2011, 19:30

Re: Merge von Feldern per Makro

Beitrag von akoerber » Di 8. Jul 2025, 18:03

Danke!
Works like a charm

akoerber
Beiträge: 197
Registriert: Di 4. Okt 2011, 19:30

Re: Merge von Feldern per Makro

Beitrag von akoerber » Fr 11. Jul 2025, 10:08

mikele hat geschrieben:
Mo 7. Jul 2025, 21:05
Hallo,
mit folgendem Makro werden die Inhalte der Zellen der Spalte K zusammengetragen, wenn die entsprechenden Zellen in A verbunden sind und in die erste Zeile gesetzt. Die anderen Zeilen werden gelöscht.

Code: Alles auswählen

Sub zellbereich_unmerge

	'Zugriff auf das Dokument
	oDoc=ThisComponent
	'Zugriff auf die erste Tabelle
	oTab=oDoc.Sheets(0)
	'Gehe zur letzten benutzten Zelle
	oCur=oTab.createCursorByRange(oTab.Columns(0))
	oCur.gotoEndOfUsedArea(False)
	vonzeile=oCur.RangeAddress.StartRow
	'Durchlaufe die Spalte A bis zum Anfang und beseitige alle verbundenen Bereiche
	do while vonzeile>-1
		zelle=oTab.getCellByPosition(0,vonzeile)
		oCur=oTab.createCursorByRange(zelle)
		oCur.collapseToMergedArea()
		vonzeile=oCur.RangeAddress.StartRow
		biszeile=oCur.RangeAddress.EndRow
		zusammen=""
		if biszeile>vonzeile then
			for i=0 to biszeile-vonzeile
				if otab.getCellByPosition(10,vonzeile+i).String<>"" then
					zusammen=zusammen & otab.getCellByPosition(10,vonzeile+i).String & "; "
				end if
			next
			if zusammen<>"" then
				zusammen=left(zusammen,len(zusammen)-2)
			end if
			otab.getCellByPosition(10,vonzeile).String=zusammen
			oTab.Rows.removeByIndex(vonzeile+1,biszeile-vonzeile)
		end if
		vonzeile=vonzeile-1
	loop
End Sub
Komisch, bei der nächsten Datei meckert die Makroausführung an, die Zeile "if zusammen<>"" then" enthalte einen unzulässigen Wert oder unverträglichen Datentyp. Alle Felder der Spalte sind aber als String definiert.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten