[Résolu][Calc] Extraire données de cellules multilignes

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 !
Meshator
Fraîchement OOthentifié
Messages : 6
Inscription : 21 déc. 2017 04:03

[Résolu][Calc] Extraire données de cellules multilignes

Message par Meshator »

Bonjour à tous,

Je vous écrit car malheureusement comme beaucoup l'ont dit avant moi sur ce forum, "j'ai cherché mais j'ai pas trouvé"...
J'espère que vous allez pouvoir me prêter main forte.

Je souhaiterais extraire des données depuis un tableau à cellules multilignes.
J'ai trouvé des choses pour éclater une cellule multiligne, récupérer des données après certains mots clés identiques, mais moi j'ai besoin de récupérer des données dans des cellules multilignes qui n'ont pas toujours le même format. J'avais bien fait un peu de VB sous excel il y a plus de 12 ans mais mon cerveau est un peu rouillé maintenant.

Je vous explique la situation, je récupère un tableau de 8 colonnes avec des cellules multilignes (pas toutes) et je voudrais en sortie un tableau de 15 colonnes avec des cellules normales (monolignes, je sais pas si ça se dit) et dans un ordre particulier.

La colonne A ne me sert pas.
Dans la colonne B je voudrais juste récupérer la ligne 2 de la cellule (Colonne "Sport")
Dans la colone C (la plus compliquée je pense) je voudrais récupérer:
-ligne 4 : le jour et le mois de la date (dans 2 cellules séparées "D", "M") et le texte (avant "@") (Colonne "Champ.")
-ligne 3 : entière ( Money Line, HDP, Team Totals..., cette valeur influence la ligne 1)
-ligne2 : l'équipe 1 (avant "-vs-") et l'équipe 2 (après "-vs-")
-ligne 1 : le texte (Colonne "Type") et éventuellement le chiffre (pour HDP par ex "-7,00") (Colonne "H or O/U")

Dans la colonne D : la première ligne (le chiffre) (colonne "Odd")
Dans la colonne E: la première ligne juste le chiffre (parfois le mot "Risk" est présent). (Colonne "Stake")
La colonne F, la valeur de la cellule mais c'est une cellule normale donc c'est bon (Colonne "Win/Loss").
La colonne G ne me sert pas.

Et la colonne H, pas évidente car elle n'a pas toujours le même format
Il me faut la valeur "Win", "Lose" ou "Refunded" (Colonne "Status")
Et si "Win" ou "Lose", il me faut le score de l'équipe 1 et le score de l'équipe 2 du résultat final (pas besoin du score à la mi-temps ) (2 cellules séparées "Score 1", "Score 2").


Je joins un petit fichier en exemple avec des couleurs en espérant que ce soit plus facile à comprendre. Sur la feuillle 1 le tableau de départ et sur la feuille 2 le tableau que je souhaite obtenir.

Si c'est trop compliqué (ou trop long), dites le moi, et alors si quelqu'un pouvait m'aiguiller au moins pour la cellule la plus compliquée (colonne C), après je pense que je pourrais appliquer la méthode au reste.


Merci d'avance à tous ceux qui voudront bien m'aider et merci d'avoir lu ce message jusqu'au bout.

Et Bonnes Fêtes de fin d'année (un peu en avance).
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Meshator le 11 janv. 2018 21:28, modifié 2 fois.
LibreOffice 5.1.4.2 sous Linux Mint
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Hubert Lambert »

Bonjour,

Voici un "premier jet". Cadeau de fin d'année :wink: .
Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Meshator
Fraîchement OOthentifié
Messages : 6
Inscription : 21 déc. 2017 04:03

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Meshator »

Bonsoir,

Wahoo Merci pour la rapidité de la réponse.

Il fallait donc bien faire du split de split de split... Je ne savais pas comment gérer cette fonction.

Du coup c'est presque bon, il y a juste la fonction "isnumeric" qui ne reconnait pas les "198.00" ou "-7.00" comme des nombres apparemment.

Et pour la colonne "Win/Loss" les nombres à virgule perdent leur virgule justement (6,84 devient 684 ou 25,75 devient 2575).

J'imagine que c'est une histoire de format.

En tous cas merci beaucoup, c'est super. Vive Noel !!
LibreOffice 5.1.4.2 sous Linux Mint
Meshator
Fraîchement OOthentifié
Messages : 6
Inscription : 21 déc. 2017 04:03

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Meshator »

Je réussi à utiliser la fonction isnumeric en sliptant mon nombre autour du "." et je teste isnumeric juste sur les décimales. Je ne sais pas si c'est académique mais ça marche.

Il ne reste donc que l'histoire de la virgule qui disparait.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 5.1.4.2 sous Linux Mint
Avatar de l’utilisateur
Churay
ManitOOu
ManitOOu
Messages : 2668
Inscription : 30 avr. 2009 04:54
Localisation : CATALUNYA

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Churay »

Bonjour,
Meshator a écrit :la fonction "isnumeric" qui ne reconnait pas les "198.00" ou "-7.00" comme des nombres apparemment.
Le séparateur est , et non pas . : il suffit donc de remplacer le point par une virgule :

Code : Tout sélectionner

                b = split(a(ubound(a)), ".")
à remplacer par

Code : Tout sélectionner

                b = join(split(a(ubound(a)), "."), ",")
et

Code : Tout sélectionner

                if isnumeric(b(ubound(b))) then
par

Code : Tout sélectionner

                if isnumeric(b) then
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Hubert Lambert »

Churay a écrit :Le séparateur est , et non pas . : il suffit donc de remplacer le point par une virgule
+1

Ci-joint une version peaufinée, en particulier en supprimer tous les appels à val() et en remplaçant la méthode setDataArray() par setFormulaArray().
Cordialement.

--
PS : dans un environnement francophone, l'utilisation de setFormulaArray() a aussi l'avantage d'interpréter la virgule et le point comme séparateurs décimaux, mais il est plus prudent de conserver la transformation rappelée par Churay.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Meshator
Fraîchement OOthentifié
Messages : 6
Inscription : 21 déc. 2017 04:03

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Meshator »

Bonsoir,

J'ai été un peu éloigné de mon ordi pendant les fetes de fin d'année. Du coup je reviens dire un grand merci à Hubert et Churay pour leur aide.
Ma macro fonctionne nickel. Je dois en faire une autre du meme genre, mais avec toutes vos infos je vais m'en sortir tout seul je pense (sinon je repasserai ici :wink: ).

Encore merci et Bonne Année 2018 !!!!
LibreOffice 5.1.4.2 sous Linux Mint
Meshator
Fraîchement OOthentifié
Messages : 6
Inscription : 21 déc. 2017 04:03

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Meshator »

Re -bonsoir

Je n'arrive pas à rajouter la balise [Résolu] dans mon titre. On dirait que le nombre de caractères de mon titre est limité lorsque j'édite mon premier message ?!?
Comment puis-je procéder ?
Merci
LibreOffice 5.1.4.2 sous Linux Mint
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12230
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Calc] Extraction données dans tableau cellules multilig

Message par Bidouille »

Meshator a écrit :Comment puis-je procéder ?
En faisant un effort d'imagination pour rester dans les 52 caractères.
https://forum.openoffice.org/fr/forum/v ... 8res+titre
Meshator
Fraîchement OOthentifié
Messages : 6
Inscription : 21 déc. 2017 04:03

Re: [Résolu][Calc] Extraire données de cellules multilignes

Message par Meshator »

Ok merci :super:
(Désolé je n'avais pas trouvé l'info de la limite des 60 caractères :D )
LibreOffice 5.1.4.2 sous Linux Mint