[Résolu] [Calc] Extraire une chaîne de caractères

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 !
therese067117
Fraîchement OOthentifié
Messages : 4
Inscription : 03 juil. 2011 19:51

[Résolu] [Calc] Extraire une chaîne de caractères

Message par therese067117 »


La modération vous a écrit: Les termes comme macro sont implicites dans la section Macros et API et donc inutiles dans le titre

Bonjour à tous et tous mes voeux pour cette nouvelle année.

Je cherche depuis plusieurs jours à faire une macro qui me permette d'extraire d'une cellule calc une chaîne de caractères, à l'effacer et à la coller dans une autre cellule.
J'utilise OpenOffice.org 3.0.1
Sans macro, je retrouve bien ma phrase en utilisant

Code : Tout sélectionner

=STXT(A2;TROUVE("* Extraire la phrase";A2;1)-1;21)
, mais c'est un document qui provient d'une fusion et avec différentes données variables.

Le texte dans la cellule A2 n'est pas toujours le même, mais quand il contient :
* Extraire la phrase 
je souhaite que cette phrase soit extraite et effacer de A2 pour être coller en A8
et ensuite
Si la cellule A8 contient la phrase : * Extraire la phrase
il faut faire apparaître un texte dans la cellule A7
texte : 2) A faire apparaître si la cellule A8 contient du texte.

Je joins un fichier pour une facilité de compréhension.
extraire_chaine_caracteres.ods
Extraire chaîne de caractères
(10.79 Kio) Téléchargé 221 fois
Je vous remercie par avance du temps que vous me consacrerez.
Cordialement
Dernière modification par micmac le 04 janv. 2019 19:54, modifié 1 fois.
Raison : Balisage
open office V3 et windows XP
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9222
Inscription : 28 août 2010 10:45

Re: [Calc] Extraire une chaîne de caractères

Message par micmac »

Bonjour et bonne année,
Dans votre signature il y a écrit :open office V3 et windows XP
Voous utilisez une version de OpenOffice qui n'est plus maintenue.
Est-ce une erreur, un oubli, un choix, une obligation ?
Dans ce dernier cas, mentionnez-le dans votre signature par Obligation de version.

Afin de profiter des dernières améliorations, il est fortement recommandé d'être à jour de la dernière version sans oublier de purger le profil de la version 3.

Dans votre signature il est nécessaire d'indiquer :
1- La version exacte de AOO ou LibO (AOO 4.1.6, LibO 6.0.7 par exemple) ;
2- La version exacte du système d'exploitation (Windows XP SP3, Vista SP2, Windows 7 SP1, Win 8.1, Win 10, Ubuntu 18.04, MacOS 10.14.2 par exemple).
Accès direct à votre signature pour la corriger.

Cordialement.

Cordialement,
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25142
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Extraire une chaîne de caractères

Message par Dude »

Salut,

Le document que tu joins ne permet pas de comprendre ce que tu cherches à faire.
Insère deux copies écran avec la situation de départ et celle attendue.
therese067117
Fraîchement OOthentifié
Messages : 4
Inscription : 03 juil. 2011 19:51

Re: [Calc] Extraire une chaîne de caractères

Message par therese067117 »

Bonjour

je viens de modifier ma signature,
la version Open Office est 3.0.1 car j'utilise un logiciel professionnel qui ne fusionne pas avec open office version ultérieure :? .

je joins à nouveau mon document avec une copie écran avant/après.
La partie 1, début du document est créé à partir d'une macro et d'une fusion de document.
le texte obtenu n'est pas toujours le même, mais si la phrase * Extraire la phrase est dans la cellule A2

alors je souhaite obtenir la partie 2 de façon automatique.

Merci beaucoup
A bientôt
Pièces jointes
extraire_chaine_caracteres_01.ods
(35.3 Kio) Téléchargé 204 fois
open office V3 et windows XP
Jeff
GourOOu
GourOOu
Messages : 9608
Inscription : 18 sept. 2006 11:40
Localisation : France

Re: [Calc] Extraire une chaîne de caractères

Message par Jeff »

Bonjour et bienvenue,
Dude a écrit :Le document que tu joins ne permet pas de comprendre ce que tu cherches à faire.
Je serais tenté de dire + 1, même avec le nouveau fichier joint :roll:

Est-ce que ça veut dire que le texte à extraire commence par une *, suivi d'une espace suivi de la mention Extraire la phrase, suivi de la phrase à extraire, suivi d'un renvoi de ligne suivi d'une * ?

Un extrait du fichier réel serait un plus...

A +
therese067117
Fraîchement OOthentifié
Messages : 4
Inscription : 03 juil. 2011 19:51

Re: [Calc] Extraire une chaîne de caractères

Message par therese067117 »

Bonjour et Merci de votre aide.

La phrase est toujours la même, commence par un *, suivi d'une espace suivi de la mention Extraire la phrase.
Elle n'existe pas toujours et n'est pas non plus toujours à la même place .

J'ai joins dans mon fichier un nouvel onglet "imprime" qui reprend la trame avec laquelle je travaille.
J'espère que c'est plus compréhensible et clair.

Bon fin de journée
Cordialement
Pièces jointes
extraire_chaine_caracteres_02.ods
(39.29 Kio) Téléchargé 139 fois
open office V3 et windows XP
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 15:31

Re: [Calc] Extraire une chaîne de caractères

Message par OOotremer971 »

Bonjour,
Sous réserve d'avoir bien compris l’énoncé (j'ai mal au crane) :fou:

Code : Tout sélectionner

Sub RemplacerParRien()
Dim oDoc As Object, lesFeuilles As Object
Dim maFeuille As Object, cible As Object
Dim medor As Object, occurrences As Long
oDoc = ThisComponent
lesFeuilles = oDoc.Sheets
maFeuille = lesFeuilles.getByName("Imprime")
cible = maFeuille.getCellRangeByName("A30")
medor = cible.createReplaceDescriptor
with medor
.SearchString = chr(10) & "* Extraire la phrase"
.ReplaceString = ""
end with
occurrences = cible.replaceAll(medor)
if occurrences = 0 Then
	with medor
	.SearchString = "* Extraire la phrase"
	.ReplaceString = ""
	end with
	occurrences = cible.replaceAll(medor)
end if

if occurrences = 1 Then
	maFeuille.getCellRangeByName("A31").SetString("2) Etablir un nouveau document :")
	maFeuille.getCellRangeByName("A32").SetString("* Extraire la phrase")
end if
cible.Rows.OptimalHeight = True
End Sub
et le fichier pour tester :
A+
Pièces jointes
extraire_chaine_caracteres_02_Mod1.ods
(40 Kio) Téléchargé 236 fois
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
therese067117
Fraîchement OOthentifié
Messages : 4
Inscription : 03 juil. 2011 19:51

Re: [Calc] Extraire une chaîne de caractères

Message par therese067117 »

Bonsoir

et vraiment Merci beaucoup :D :) :P
ça correspond exactement à ce que je cherchais,
et ça fonctionne parfaitement.

Bonne soirée et j'espère que le mal de crâne a disparu.

Cordialement.
open office V3 et windows XP
Verrouillé