Microsoft 365 Nettoyer text ("ma pomme " deviens "ma_pomme")

merinos-BernardEtang

XLDnaute Accro
Bonjour,

Je vais devoir importer des noms de device dans un systeme... mais il existe une serie de regles d'import... donc pas de blanc...

donc "ma pomme " ne passe pas car il y a 2 espaces....

Existe-t'il une FONCTION qui nettoie du texte? Le but est de pouvoir le mettre entre 2 colonnes dans un tableau...
ou alors je vais employer des solution en PowerQuery...

Code:
Text.Trim("   ma Pomme#§   est  belle ") => "ma Pomme#§ est belle"

Text.Remove(Text.Trim("   ma Pomme#§   est  belle "), {"@","#","§"}) => "ma Pomme est belle"

text.Replace(Text.Remove(Text.Trim("   ma Pomme#§   est  belle "), {"@","#","§"})," ","_") => "ma_Pomme_est_belle"

J'y suis...

Merci

Merinos
 
Solution
Re,

@merinos , je n'avais point compris cela !
Mais voila je travaille dans une boite qui nous demande de faire du velo sans les pedales... donc point de VBA.
En formule, pas très compliqué, selon le même principe, mais je ne connais pas de fonction qui fasse tout d'un coup
=SUBSTITUE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;"@";" ");"#";" ");"§";" "));" ";"_")

Bien cordialement, @+

patricktoulon

XLDnaute Barbatruc
re
Bonjour a tous
et bien mes amis :rolleyes: là on tiens le pompon

bon je vais faire simple
remplacer les espaces restants par un tiret ne sera pas trop difficile ca va, sinon vous le dites hein 🤪
VB:
Sub test3()
   ' avec un texte bien pourri
   MsgBox nettoieText("ma%ù#'[()@---|      Pomme#§  #'#-=    est~à#'=+     /*=#([|\belle+*/")
End Sub

Function nettoieText(txt)
    With CreateObject("VBScript.RegExp"):
        .Global = True: .IgnoreCase = True: .Pattern = "[^\w]"
         nettoieText = Application.Trim(.Replace(txt, " "))
    End With
End Function

ok je sort 🤫
 

soan

XLDnaute Barbatruc
Inactif
Etoto a écrit : « Je suis si pourri en orthographe ??? Veuillez m'en excuser. Je ne le fais pas exprès. Je sors de l'école, mais ok, je ferai un effort. »

@Etoto : mais non, voyons ! tu n'as fait aucune faute ! 😊 mais si tu ne me crois pas, tu peux jouer au jeu des 7 différences. 😁 😂 🤣 (au moins, car j'les ai pas toutes comptées !)

soan
 

Etoto

XLDnaute Barbatruc
Etoto a écrit : « Je suis si pourri en orthographe ??? Veuillez m'en excuser. Je ne le fais pas exprès. Je sors de l'école, mais ok, je ferai un effort. »

@Etoto : mais non, voyons ! tu n'as fait aucune faute ! 😊 mais si tu ne me crois pas, tu peux jouer au jeu des 7 différences. 😁 😂 🤣 (au moins, car j'les ai pas toutes comptées !)

soan
Heu j'ai corrigé ces fautes avant ta réponse, tu es en retard.
 

soan

XLDnaute Barbatruc
Inactif
t'inquièt pas ! moi aussi, j'fais parfois plein d'fautes : y'a beaucoup d'règles de grammaire et de conjugaison qu'j'ai oubliées ! ... mais j'ai pas envie d'repotasser tout le Becherelle ! 😁 😂 (j'préfère le VBA !)
 

merinos-BernardEtang

XLDnaute Accro
Re,

un essai en expression régulière, c'est sympa aussi et ça traite tous les caractères qu'il ne faut pas simplement en ne gardant que ceux qu'il faut.
VB:
Sub Essai_Regex()
...
End Sub

Bien cordialement, @+
@Yeahou ,

C'est bien ce que je pensais...

Mais voila je travaille dans une boite qui nous demande de faire du velo sans les pedales... donc point de VBA... le prends le code dans la @mapoire ... prochaine fois je choisirai une chaine plus neutre... du stype "ma cousine d'origine Sud mediteranéenne" ... GRRRR je vais encore en facher certains...

Merci a tous, fin du feu de pommes...

Merinos.
 
Re,

@merinos , je n'avais point compris cela !
Mais voila je travaille dans une boite qui nous demande de faire du velo sans les pedales... donc point de VBA.
En formule, pas très compliqué, selon le même principe, mais je ne connais pas de fonction qui fasse tout d'un coup
=SUBSTITUE(SUPPRESPACE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;"@";" ");"#";" ");"§";" "));" ";"_")

Bien cordialement, @+
 

Statistiques des forums

Discussions
315 134
Messages
2 116 613
Membres
112 811
dernier inscrit
shade1452