Comment renommer un fichier automatiquement avec le premier mot dans writer

Bonjour, je souhaite pouvoir nommer un fichier writer lors du premier l’enregistrement avec le premier mot de la page (ou un mot qui pourrait être sélectionné). Merci de votre aide

Bonjour @schotky

Ce que tu souhaites ne peut se faire a priori que par macro. Ce qui suit n’est à suivre que si tu connais suffisamment afin de ne pas risquer de perturber le fonctionnement normal de LibreOffice, et sous ta responsabilité.

Le principe est de copier la macro suivante dans le module Module1 de la bibliothèque Mes macros de LibreOffice (et non dans un module de document) afin qu’elle soit accessible depuis n’importe quel nouveau document.

option explicit

sub PysSuggestName

Dim oDoc as Object
Dim oCursor As Object
dim document   as object
dim dispatcher as object

oDoc = thiscomponent
oCursor = oDoc.CurrentController.ViewCursor

If oCursor.isCollapsed Then
	oCursor = oDoc.Text.createTextCursor()
	oCursor.gotoStart(false)
	if oCursor.gotoNextWord(true) then
		oDoc.title = oCursor.string
	end if
else
	oDoc.title = oCursor.string
end if

document   = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, Array())

end sub

Au lieu d’enregistrer “classiquement” le nouveau document il suffit d’appeler la macro. Cette dernière commence par vérifier si un texte est sélectionné.

  • Si non (pas de sélection) c’est le premier mot du texte qui sera proposé.
  • Si oui c’est ce texte qui sera proposé par défaut comme nom de document.

Il est possible d’affecter le lancement de la macro à un menu/barre d’outils via le menu OutilsPersonnaliser

Cordialement

Merci beaucoup pour ta réponse. Cela fonctionne :slight_smile: