[Résolu] [Draw] Plusieurs rechercher-remplacer en même temps

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
ThathankaBernard
NOOuvel adepte
NOOuvel adepte
Messages : 20
Inscription : 02 oct. 2024 08:53

[Résolu] [Draw] Plusieurs rechercher-remplacer en même temps

Message par ThathankaBernard »

Bonjour à tous,

Dans la boîte de dialogue "Rechercher & remplacer" de Draw, je voudrais remplacer en une seule fois des caractères.
Par exemple :
"A" en "U"
"B" en "V"
"C" en "W"
"D" en "X"

au lieu de 4 manoeuvres (ou plus) à la suite.

Les lettres se trouvent individuellement dans des pièces Fontwork. J'utilise une police me permettant de faire des noeuds celtiques.

J'ai écrit un macro qui marche très bien dans Writer mais ne fonctionne pas dans Draw.
Je reçois le message :
"Erreur d'exécution BASIC. Propriété ou méthode non trouvée : createReplaceDescriptor".

Voici ma macro :

Code : Tout sélectionner

Sub Knots

Dim Indented(), Straight() As String
Dim n, m As Long
Dim aaa, zzz As Object

Indented() = Array("E","F","G","H","V","U","X","W")
Straight() = Array("v","w","x","u","Í","Î","Ï","Ì")

aaa = ThisComponent:zzz = aaa.createReplaceDescriptor

For n = lbound(Indented()) To ubound(Indented()):zzz.SearchString = Indented(n)
zzz.SearchCaseSensitive = TRUE:zzz.ReplaceString = Straight(n):aaa.replaceAll(zzz):Next

End Sub
D'avance merci
Dernière modification par ThathankaBernard le 07 oct. 2024 07:47, modifié 2 fois.
LibreOffice 3.3 (choix)
Windows 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: [Draw] Plusieurs rechercher-remplacer en même temps

Message par micmac »

Bonjour et bienvenue sur le forum,
Dans votre signature il y a écrit : LibreOffice 3.3
Votre signature fait mention d'une version d'OpenOffice qui n'est plus maintenue.
Si c'est une obligation ou un choix mentionnez-le par Obligation de version ou Choix dans votre signature afin de ne pas être relancé.

Connaître la version de Apache OpenOffice (AOO) ou LibreOffice (LibO) installée

Afin de profiter des dernières améliorations, pensez à être à jour de la dernière version officielle et surtout, ne pas oublier de purger le profil de la version 3 avant d'iunstaller la version 4.1.15.
[*]Purger les profils avec l'outil dédié (purge totale)
[*]procédure manuelle Purge des profils utilisateur

Accès direct à votre signature pour la corriger.

Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
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: [Draw] Plusieurs rechercher-remplacer en même temps

Message par Dude »

Salut,
ThathankaBernard a écrit : 02 oct. 2024 08:59 J'ai écrit un macro qui marche très bien dans Writer mais ne fonctionne pas dans Draw.
Oui car Draw n'est pas Writer. Les formes sont stockées sur la couche de dessin (propriété DrawPages)
ThathankaBernard a écrit : 02 oct. 2024 08:59 "Erreur d'exécution BASIC. Propriété ou méthode non trouvée : createReplaceDescriptor".
Il faut se servir de XRay pour voir qu'un objet de type XShape n'a pas cette méthode :

capture.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
ThathankaBernard
NOOuvel adepte
NOOuvel adepte
Messages : 20
Inscription : 02 oct. 2024 08:53

Re: [Draw] Plusieurs rechercher-remplacer en même temps

Message par ThathankaBernard »

Super ! 61 vues.

Merci Dude de ta réaction.
J'ai cliqué sur le lien "Xray", puis sur la nouvelle version donnée par Ravioli (https://www.openoffice.org/fr/Documenta ... l60_fr.odt) mais j'obtiens la réponse "Fichier non téléchargé : risque de sécurité potentiel". Donc, j'ai peur.

Voici un exemple de mon dessin. (
exemple.odg
).Chaque caractère est un objet Fontwork.
Je veux remplacer par exemple "U" par "A", "V" par "B", "W" par "C", "X" par "D" en une seule opération.

D'avance merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 3.3 (choix)
Windows 7
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: [Draw] Plusieurs rechercher-remplacer en même temps

Message par Dude »

Code : Tout sélectionner

Sub DudeMoi
	aRech = array("U","V","W","X")
	aRemp = array("A","B","C","D")
	oDoc = ThisComponent()
	oPages = oDoc.DrawPages
	oPage = oPages.getByIndex(0)
	nElems = oPage.Count - 1
	for i = 0 to nElems	
		oForme = oPage.getByIndex(i)
		sTexte = oForme.String
		if Len(sTexte) = 1 then
			for j = 0 to UBound(aRech)
				if sTexte = aRech(j) then oForme.String = aRemp(j)
			next
		endif		
	next
End Sub
ThathankaBernard
NOOuvel adepte
NOOuvel adepte
Messages : 20
Inscription : 02 oct. 2024 08:53

Re: [Draw] Plusieurs rechercher-remplacer en même temps

Message par ThathankaBernard »

Ça marche ! (Bien sûr, DuCon, Dude a testé avant de poster) :D :D :D :bravo:
Gratitude éternelle à Dude !
Gloire à Dude !

Je suis certain que cette macro pourra servir à d'autres.
À part que cette macro ne remplace que les éléments de la diapo numéro 1 et pas ceux des autres diapos ni d'une diapo sélectionnée. D'un autre côté, c'est sans doute plus prudent ainsi.
Précision pour les intéressés : les éléments doivent être dissociés (pas groupés) pour que ça marche.

Dois-je considérer le sujet comme clos ou dois-je attendre ?

Dude,en remerciement, voici ton nom d'utilisateur ("DUDE") en deux de mes formes de nœuds celtiques en format PDF.
Dude_hearts-out.pdf
Dude_hearts-in.pdf
Cordialement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par ThathankaBernard le 04 oct. 2024 17:30, modifié 3 fois.
LibreOffice 3.3 (choix)
Windows 7
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9580
Inscription : 28 août 2010 08:45

Re: [Draw] Plusieurs rechercher-remplacer en même temps

Message par micmac »

Pour clore votre sujet :
  • Placez-vous sur le premier message de votre fil de discussion
  • En haut à droite de ce message, cliquez sur le bouton du petit crayon pour modifier.
  • Modifiez le titre du message en cochant l'icône Image et en tapant [Résolu] (respectez la mise en forme donnée) comme illustré ci-dessous :

    Image
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur macOS
ThathankaBernard
NOOuvel adepte
NOOuvel adepte
Messages : 20
Inscription : 02 oct. 2024 08:53

Re: [Draw] Plusieurs rechercher-remplacer en même temps

Message par ThathankaBernard »

Bonjour Dude,

Serait-ce abuser de demander la formule pour remplacer quand il y a plusieurs caractères dans un objet Fontwork ?
Par exemple, j'ai les mots "Fontwork Fontwork Fontwork" dans un seul objet Fontwork et je veux remplacer les "o" et les "t" par d'autres caractères en une seule opération.
Et aussi faire la même chose dans la boîte Texte.
Oui, je sais, j'abuse, désolé. :oops:

Soyons fous, pourquoi pas carrément une boîte de dialogue "Rechercher & remplacer" (pour Writer et Draw).
Dude_Hash_Indented.pdf

Cordialement
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par ThathankaBernard le 05 oct. 2024 12:39, modifié 1 fois.
LibreOffice 3.3 (choix)
Windows 7
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Draw] Plusieurs rechercher-remplacer en même temps

Message par Bidouille »

ThathankaBernard a écrit : 05 oct. 2024 09:20 Serait-ce abuser de demander
Merci de respecter les règles de ce forum qui mentionne de ne faire figurer qu'un seul problème par fil.
Ceci n'est pas pour vous mais pour ceux effectuant ensuite des recherches.
Donc vous ouvrez un nouveau sujet avec un titre en rapport avec cette nouvelle question.


Et comme l'indique le précédent modo, vous clôturez ce fil puisque...
ThathankaBernard a écrit : 04 oct. 2024 15:27 Ça marche !