[Résolu] [Calc] simplifier le texte d'une cellule
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 01 juin 2009 21:38
[Résolu] [Calc] simplifier le texte d'une cellule
Bonjour,
à la recherche d'une solution pour traiter des données "texte", les réponses que j'ai pu trouver m'orientaient vers l'utilisation des macros.
Ne maitrisant pas très bien voire pas du tout les macros j'ai cherché un forum afin de me tourner vers des experts.
Je souhaite pouvoir simplifier le texte dans une cellule en ne conservant que les informations texte ABC..123...sans accent, sans ponctuation ni d'espace, etc... + Passer le tout en minuscule.
Exemple:
L'hameçon du 3ème Pôle
deviendrait :
lhamecondu3emepole
et
L'A.F.D.O
deviendrait
lafdo
J'ai donc une colonne A à convertir en colonne B (je souhaite conserver les informations d'origine dans le tableau).
Il y a bien une fonction =MINUSCULE qui me permet de basculer mes infos en minuscule, mais le plus difficile reste le filtrage des caractères à accents ou signes et espace... Et là, j'ai pas trouvé de fonctions adaptées.
Peut-être que certains d'entre vous ont déjà ce script sous le coude...
Merci par avance pour votre aide.
Cordialement,
Jeremy.
à la recherche d'une solution pour traiter des données "texte", les réponses que j'ai pu trouver m'orientaient vers l'utilisation des macros.
Ne maitrisant pas très bien voire pas du tout les macros j'ai cherché un forum afin de me tourner vers des experts.
Je souhaite pouvoir simplifier le texte dans une cellule en ne conservant que les informations texte ABC..123...sans accent, sans ponctuation ni d'espace, etc... + Passer le tout en minuscule.
Exemple:
L'hameçon du 3ème Pôle
deviendrait :
lhamecondu3emepole
et
L'A.F.D.O
deviendrait
lafdo
J'ai donc une colonne A à convertir en colonne B (je souhaite conserver les informations d'origine dans le tableau).
Il y a bien une fonction =MINUSCULE qui me permet de basculer mes infos en minuscule, mais le plus difficile reste le filtrage des caractères à accents ou signes et espace... Et là, j'ai pas trouvé de fonctions adaptées.
Peut-être que certains d'entre vous ont déjà ce script sous le coude...
Merci par avance pour votre aide.
Cordialement,
Jeremy.
OpenOffice3.1.0 sous MacOS 10.4
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 01 juin 2009 21:38
Re: [Calc] simplifier le texte d'une cellule
j'ai trouvé un script, mais impossible de le faire fonctionner sous OO...
ça bloque au terme Caract et aussi à l'expression txt = Trim(txt), je suppose donc que le code est pas adapté à OpenOffice...
Et qu'il faudrait peut-être uniquement modifier certains termes pour être conforme.
Any idea?
Code : Tout sélectionner
Function OteAccents(txt)
Dim ARemplacer()
Dim RemplacerPar()
Dim Cel
Dim Caract
Dim i, a
ARemplacer = Array(" ", "'", "À", "à", "Â", "â", "È", "è", "É", "é", "Ê", "ê", "Ë", "ë", "Î", "î", "Ï", "ï", "Ô", "ô", "Ö", "ö", "Û", "û", "Ü", "ü", "Ù", "ù", "Y", "ÿ")
RemplacerPar = Array("", "", "A", "a", "A", "a", "E", "e", "E", "e", "E", "e", "E", "e", "I", "i", "I", "i", "O", "o", "O", "o", "U", "u", "U", "u", "U", "u", "Y", "y", "Y", "y")
txt = Trim(txt)
For i = 1 To Len(txt)
Caract = Mid(txt, i, 1)
For a = 0 To UBound(ARemplacer)
If Caract = ARemplacer(a) Then
Caract = RemplacerPar(a)
End If
Next a
OteAccents = OteAccents & Caract
Next i
End Function
ça bloque au terme Caract et aussi à l'expression txt = Trim(txt), je suppose donc que le code est pas adapté à OpenOffice...
Et qu'il faudrait peut-être uniquement modifier certains termes pour être conforme.
Any idea?
Dernière modification par Oukcha le 02 juin 2009 06:29, modifié 1 fois.
Raison : Pose balise [code] et [/code]
Raison : Pose balise [code] et [/code]
OpenOffice3.1.0 sous MacOS 10.4
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Calc] simplifier le texte d'une cellule
Salut,
Dans ce cas, il est recommandé de citer la source. C'est une question de respect pour l'auteur du code.Jeremy_s a écrit :j'ai trouvé un script, mais impossible de le faire fonctionner sous OO...
Si, il est adapté. Il faut juste savoir comment tu appelles la fonction dans ton classeur. Joins nous un fichier avec la macro que l'on voit ce que tu fais.Jeremy_s a écrit :je suppose donc que le code est pas adapté à OpenOffice...
Et qu'il faudrait peut-être uniquement modifier certains termes pour être conforme.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
- GourOOu
- Messages : 9629
- Inscription : 18 sept. 2006 09:40
- Localisation : France
Re: [Calc] simplifier le texte d'une cellule
Bonjour à tous,
Christian Wtd a déjà fais une fonction personnalisée pour supprimer les accents : http://christianwtd.free.fr/index.php?r ... Function04
Pour supprimer les espaces et ponctuations, une ligne est à rajouter (éventuellement à compléter) :
Pour ensuite l'employer, la texte étant en A1, saisir la formule :
A +
EDIT : englober cette fonction dans une fonction MINUSCULE :
Je joins le classeur-test :
Christian Wtd a déjà fais une fonction personnalisée pour supprimer les accents : http://christianwtd.free.fr/index.php?r ... Function04
Pour supprimer les espaces et ponctuations, une ligne est à rajouter (éventuellement à compléter) :
Code : Tout sélectionner
ElseIf Car = "'" Or Car = "." Or Car = ";" Or Car = ":" Or Car = "!" Or Car = "-" Or Car = "(" Or Car = ")" Or Car = " " Then
Car = ""
Mid(Texte, n, 1) = Car
Code : Tout sélectionner
=SUPPRIME_ACCENTS(A1)
EDIT : englober cette fonction dans une fonction MINUSCULE :
Code : Tout sélectionner
=MINUSCULE(SUPPRIME_ACCENTS(A1))
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- Fraîchement OOthentifié
- Messages : 4
- Inscription : 01 juin 2009 21:38
Re: [Calc] simplifier le texte d'une cellule
Le script que j'ai récupéré a été posté sur un forum par Misange migrateuse. (désolé, je ne savais pas qu'il fallait inclure le nom de celui qui a posté un script... Cela dit, il en est peut-être pas l'auteur...)
Jeff,
Merci pour ton message, je vais essayer tout ça de suite...
!!!!!
SUPER ça à l'air de fonctionner... il me reste à tester ça sur mon fichier global, mais sur mon fichier de test c'est tip top!!!! Un GRAND MERCI !!
Bonne journée à vous tous.
Jeff,
Merci pour ton message, je vais essayer tout ça de suite...
!!!!!
SUPER ça à l'air de fonctionner... il me reste à tester ça sur mon fichier global, mais sur mon fichier de test c'est tip top!!!! Un GRAND MERCI !!
Bonne journée à vous tous.
OpenOffice3.1.0 sous MacOS 10.4
-
- Fraîchement OOthentifié
- Messages : 1
- Inscription : 05 sept. 2018 21:41
Re: [Résolu] [Calc] simplifier le texte d'une cellule
ATTENTION
le code fourni ne fonctionne pas pour 2 caractères spéciaux consécutifs. il faut rajouter une ligneen desssous de
ce qui donne:
info: j'ai aussi rajouté l'espace automatique devant les deux points par exemple. c'est celui entre "+" et ")" dans la liste.
le code fourni ne fonctionne pas pour 2 caractères spéciaux consécutifs. il faut rajouter une ligne
Code : Tout sélectionner
n=n-1
Code : Tout sélectionner
Mid(Texte, n, 1) = Car
Code : Tout sélectionner
ElseIf Car = "'" Or Car = "." Or Car = ";" Or Car = ":" Or Car = "!" Or Car = "-" Or Car = "(" Or Car = "," Or Car = "+" Or Car = " " Or Car = ")" Or Car = " "Then
Car = ""
Mid(Texte, n, 1) = Car
n=n-1
Endif
LibreOffice Version: 5.0.6.3 Locale??: fr-FR (fr_FR) Windows 10 Pro 64 bits
-
- ManitOOu
- Messages : 2668
- Inscription : 30 avr. 2009 04:54
- Localisation : CATALUNYA
Re: [Résolu] [Calc] simplifier le texte d'une cellule
Bonjour,
C'est résolu, mais pour le fun, voici une autre approche :
C'est résolu, mais pour le fun, voici une autre approche :
Code : Tout sélectionner
Option Explicit
Sub Main
MsgBox OteAccents(("L'hameçon du 3ème Pôle")
MsgBox OteAccents(("L'A.F.D.O")
End Sub
Function OteAccents(sTxt AS String)
Dim aSource() AS String, aResult() AS String, iX AS Integer
aSource = Array(" ", "'", "À", "à", "Â", "â", "È", "è", "É", "é", "Ê", "ê", "Ë", "ë", "Î", "î", "Ï", "ï", "Ô", "ô", "Ö", "ö", "Û", "û", "Ü", "ü", "Ù", "ù", "Y", "ÿ", ".", ",", ";", ":", "!", "-", "+", "(", ")" )
aResult = Array("", "", "A", "a", "A", "a", "E", "e", "E", "e", "E", "e", "E", "e", "I", "i", "I", "i", "O", "o", "O", "o", "U", "u", "U", "u", "U", "u", "Y", "y""", "", "", "", "", "", "", "", "" )
FOR iX = 0 TO UBOUND(aSource)
IF InStr(sTxt, aSource(iX)) > 0 THEN
sTxt = join(split(sTxt, aSource(iX)), aResult(iX))
END IF
NEXT iX
OteAccents = sTxt
END Function
cOOordialement
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
---
AOO 4.0.1 W7-PRO & LO 5.1.6.2 Debian 7.8 & Ubuntu 16.04 LTS
---
F1 : ça aide...
XRay + SDK
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...