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, @+

Etoto

XLDnaute Barbatruc
Bonjour merinos, le forum

Pas trop compris la question mais peut être
VB:
MsgBox Replace(Replace(Replace(Replace(Application.Trim("   ma Pomme#§   est  belle "), "@", ""), "#", ""), "§", ""), " ", "_")

ps : et, en parlant Xld correctement, on dit mapomme est beau ! 😉

Bien cordialement, @+
Bonjour,

On savait tous que tu voulais envoyer un message subliminal à @mapomme dans ce poste tu veux mettre un espace dans son pseudo. 🤣
 
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()
Dim Chn_Txt$
Chn_Txt = "   ma Pomme#§   est  beau "
With CreateObject("VBScript.RegExp")
    .Pattern = "[^A-zÀ-ÿ0-9 ]" 'caractères à garder
    .Global = True
    Chn_Txt = Application.Trim(.Replace(Chn_Txt, " ")) 'tous les caractères hors pattern sont modifiés _
        en espaces pour traiter tous les séparateurs possibles, le trim réduit ensuite les répétitions d'espace
End With
Chn_Txt = Replace(Chn_Txt, " ", "_") 'remplaces les espaces par le caractère de séparation voulu
MsgBox Chn_Txt, vbOKOnly + vbInformation
End Sub

Bien cordialement, @+
 
Dernière édition:
re,

@mapoire , ça fonctionne aussi comme ça ! 😉
VB:
Sub Essai_Regex()
Dim Chn_Txt$
Chn_Txt = "   ma Pomme#§ et ma Poire#§   sont  beaux "
With CreateObject("VBScript.RegExp")
    .Pattern = "[^A-zÀ-ÿ0-9 ]" 'caractères à garder
    .Global = True
    Chn_Txt = Application.Trim(.Replace(Chn_Txt, " ")) 'tous les caractères hors pattern sont modifiés _
        en espaces pour traiter tous les séparateurs possibles, le trim réduit ensuite les répétitions d'espaces
End With
Chn_Txt = Replace(Chn_Txt, " ", "_") 'remplaces les espaces par le caractère de séparation voulu
MsgBox Chn_Txt, vbOKOnly + vbInformation
End Sub
 
re,

Je me suis réuni avec mapomme pour lui signifier ma jalousie et frustation. Il est cité régulièrement dans ce forum et mapoire jamais!

d'un autre coté ! @mapomme vainqueur par Ko technique.

Sans titre.png

Sans titre.png
 

soan

XLDnaute Barbatruc
Inactif
ah oui, mais là, c'est différent : c'est une faute par rapport à la langue française écrite comme d'habitude, mais j'ai fait exprès de ne pas mettre n' car j'ai voulu écrire de la façon qu'on parle "en abrégé" ; c'est comme quand j'écris par exemple « maint'nant » au lieu de « maintenant », et aussi « p't'être » au lieu de « peut-être ».​
 

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 812
dernier inscrit
jocelyne86360