Ma Macro Céée sous LO-Calc ne fonctionne pas, vraisemblablement pour problème d'adressage

Bonjour,
J’ai créé sous LibreOffice Calc une Macro à l’aide de l’assistant Outils>Macro>Enregistrer un macro.
J’ai créé cette Macro dans le but de faire un Copiuer/Coller d’une formule à de multiples endroits de mon tableau.
Elle ne fonctionne pas correctement car les cellules sont adressées en mode absolue.
En effet elle ne fonctionne que dans la zone où elle a été créée, je voudrais l’uliliser x fois depuis une cellule quelconque.
Je joint la copie de cette macro dans le fichier suivant.
Macro LO-Calc.odt (25,3 Ko)
Je vous remercie par avance, et vous prie d’être indulgent avec moi, car c’est la premiére fois que je vous demande assitance.
Meilleures Salutations.

Bonjour,
Voici une macro qui devrait faire l’affaire :

Sub CopierColler()
	Dim oSource As Object, aSource As com.sun.star.table.CellAddress, oFeuille As Object, oDest As Object
	
	'Paramètres de décalage
	Const DecalageVertical=4
	Const DecalageHorizontal=0
	Const HauteurDest=16
	Const LargeurDest=1
	
	'On récupère la sélection courante
	oSource=ThisComponent.CurrentSelection
	
	
	'on quitte si ce n'est pas une cellule seule
	If Not oSource.supportsService("com.sun.star.sheet.SheetCell") Then Exit Sub

	'On récupère la feuille 
	oFeuille=oSource.SpreadSheet

	'On récupère l'adresse de la cellule source
	aSource = oSource.CellAddress

	'Pour transposer, on va devoir copier dans chaque cellule destination, alors on va faire des boucles :)
	
	Dim colonne, ligne
	
	'on boucle sur les colonnes de destination
	For colonne=aSource.column+DecalageHorizontal To aSource.column+DecalageHorizontal+LargeurDest-1
		'on boucle sur les lignes de destination
		For ligne=aSource.row+DecalageVertical To aSource.row+DecalageVertical+HauteurDest-1
			'on récupère la cellule destination
			oDest=oFeuille.getCellByPosition(colonne,ligne)
			'on copie la source dans la destination
			oFeuille.copyRange(oDest.CellAddress,oSource.RangeAddress)
		Next ligne
	Next colonne	
	'et hop :)
End Sub

J’ai rentré comme constantes les décalages que j’ai pu observer dans ta macro enregistrée.
Ça fonctionne à condition que tu aies toujours besoin du même décalage entre la cellule source et les cellules destination.
J’espère que ça va t’aider!

Par contre attention, c’est un peu rouleau compresseur. S’il y a quelque chose dans la plage de destination, ce sera écrasé sans pitié !

apparemment, c’est pas possible avec LO

peut-être ça peut se faire simplement sans macro ?
https://help.libreoffice.org/latest/fr/text/scalc/guide/mark_cells.html

toujours :angel: