Problème de remplacement avec la fonction AutoCorrection

Bonjour,
Les paramètres originaux de writer proposent, à l’aide de la fonction AutoCorrection, de remplacer “- - -” par “— ” (un tiret cadratin suivi de l’espace simple).
J’ai modifié l’Autocorrection afin de remplacer “- - -” par “— ” (un tiret cadratin suivi de l’espace insécable) mais cela ne fonctionne pas parfaitement. En effet, lorsque j’appuie sur ma barre espace pour remplacer “- - -” j’obtiens “— ” (un tiret cadratin suivi de l’espace insécable ET de l’espace simple).
Pouvez-vous m’aider ?

PS : J’ai volontairement ajouté les deux espaces entre mes tirets afin d’améliorer la lisibilité de ma publication. Dans mes paramètres, les trois tirets sont les uns à la suite des autres.
Pardonnez-moi pour les nombreuses éditions.

version : LibreOffice 25.8.3.2.
Windows 11

Bonjour,
Expliquez le but final, pas juste votre étape bloquée (Évitez le paradoxe X-Y).

Le concept est simple :

  1. Vous voulez faire Y.
  2. Vous ne savez pas comment faire Y, mais vous pensez que faire X pourrait marcher.
  3. Vous ne savez pas non plus faire X.
  4. Vous demandez de l’aide pour X.

Ne demandez pas comment réparer votre pelle quand vous essayez de creuser une piscine avec : dites-nous que vous voulez une piscine ! On vous dira prend une tractopelle.

Bonjour

@maxima3_2000
Le but final est d’afficher rapidement un tiret cadratin suivi de l’espace insécable à l’aide d’un raccourcis clavier pour fluidifier mon écriture.

@fpy
Merci pour les propositions. J’ai suivi vos conseils en créant deux nouvelles règles de remplacement : ---* et ---.
Malheureusement, je ne parviens pas à obtenir le résultat souhaité.
Pour ---* je dois quand même appuyer sur espace, entrée ou tab pour l’activer et cela ajoute à mon texte un espace, un saut de ligne ou une tabulation (selon la touche utilisée).
Avec ---. cela m’affiche — . (tiret cadratin + espace insécable + point).

Après quelques expérimentations je constate le même schéma de réponse. La dernière touche sur laquelle j’appuie ne se contente pas d’activer le remplacement, elle remplace (comme je lui demande) et elle s’affiche.
Je plussoie donc @fpy : l’utilisation de AutoCorrection n’est pas idéal et je dois probablement mal paramétrer ma demande.

Peut-être qu’une macro pourra m’aider ? Je n’en ai jamais crée. C’est l’occasion. Si vous avez quelques pistes supplémentaires, elle sont encore les bienvenues.

De retour,

J’ai créé une macro, ensuite associée à un raccourcis clavier et tout fonctionne !

Cependant, il s’agit de ma première macro et j’aimerai avoir un retour sur le code.
Est-il simple et propre ? Ou, au contraire, peut-il être amélioré ?

Le code en question :

REM  *****  BASIC  *****


sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = "—"

dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())

dispatcher.executeDispatch(document, ".uno:InsertNonBreakingSpace", "", 0, Array())


end sub

tout est relatif, mais pour info, sans passer par dispatcher, ça donne :

sub insereCadratInsec
	oSel= ThisComponent.CurrentController.Selection.getByIndex(0)
	oSel.string = "— " 'cadratin + nbsp
end sub

voir des exemples en tous genres : Macros pour LibreOffice ''Writer'' - The Document Foundation Wiki

1 Like

Merci pour cette contribution :slight_smile:

sujet clos pour moi

Bonjour,

On peut utiliser AutoTexte

AutoCorrection_vs_AutoTexte

1 Like

vous pouvez essayer de jouer avec .*
cf Remplacer

voir aussi les traitements spécifiques des tirets : Options (AutoCorrection)


mais vues les limites d’autocorrect, le plus simple serait Enregistrement d'une macro pour automatiser Rechercher & remplacer.