[Calc] Fusion de texte réparti sur plusieurs cellules

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

[Calc] Fusion de texte réparti sur plusieurs cellules

Message par Dude »

Petit cas d'école avec du texte réparti sur plusieurs cellules
vue1.PNG
Et le résultat voulu
vue2.PNG
La macro utilisée

Code : Tout sélectionner

Sub Fusion
	Dim oCell As Object 
	Dim oPlage As Object
	Dim oTexte As string
	Dim c1 As Integer, c2 as Integer
	Dim lig As Integer, col As Integer

	' Zone de fusion	
	lig = 5 ' lignes
	col = 8 ' colonnes
	
	' les index partent de zéro
	lig = lig - 1
	col = col - 1
	
	For c1 = 0 To lig
		oTexte = ""
		For c2 = 0 To col
			oCell = ThisComponent.Sheets(0).GetCellByPosition(c2, c1)
			oTexte = oTexte & oCell.string		
			oCell.string = ""
		Next c2
		oCell = ThisComponent.Sheets(0).GetCellByPosition(0, c1)
		oCell.string = oTexte
		oPlage = ThisComponent.Sheets(0).getCellRangeByPosition( 0, c1, col, c1)
		oPlage.Merge( True )
	Next c1
End Sub
Le classeur complet :
macro_fusion.ods
8)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Jf57580
Fraîchement OOthentifié
Messages : 1
Inscription : 26 avr. 2021 09:41

Re: [Calc] Fusion de texte réparti sur plusieurs cellules

Message par Jf57580 »

Bonjour,
Merci pour cette macro.
Je débute et je suis en train de découper le code pour le comprendre.
Pouvez vous m'indiquez pourquoi à un moment donné vous indiqué oTexte = ""
A quoi servent ces deux guillemets. Je présume que c'est pour stocker les éléments copiés dans les cellules?
Merci
LibreOffice 7.1.2.2 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Fusion de texte réparti sur plusieurs cellules

Message par Dude »

As-tu lu le bandeau rouge en haut de la page ? :roll:
Jf57580 a écrit :Pouvez vous m'indiquez pourquoi à un moment donné vous indiqué oTexte = ""
Fais le test en enlevant la ligne et regarde comment les données fusionnent dans la boucle.