Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 supprimer caractères spéciaux

david gom

XLDnaute Nouveau
Bonjour je souhaite supprimer les caractères spéciaux autres que a-z sur ce fichier.

Auriez vous une solution ?

Merci à vous
 

Pièces jointes

  • test caractères spéciaux.xlsx
    49 KB · Affichages: 29

Staple1600

XLDnaute Barbatruc
Re

Le message#46 c'est surtout parce que je pensais que tu n'avais vu le reste des échanges (vu que tu n'évoquais les autres propositions UTF8 )
Alors pour être complet et être HAPPY dans l'API
VB:
Public Function UTF8_Encode(ByVal Text As String) As String
Dim sBuffer$, lLength&
lLength = WideCharToMultiByte(CP_UTF8, 0, StrPtr(Text), -1, 0, 0, 0, 0)
sBuffer = Space$(lLength)
lLength = WideCharToMultiByte(CP_UTF8, 0, StrPtr(Text), -1, StrPtr(sBuffer), Len(sBuffer), 0, 0)
sBuffer = StrConv(sBuffer, vbUnicode)
UTF8_Encode = Left$(sBuffer, lLength - 1)
End Function
 

patricktoulon

XLDnaute Barbatruc
@Robert bonsoir
@Staple1600
VB:
Option Explicit
'65001 'UTF8
Public Function UTF8_Decode(ByVal Text As String) As String
Dim lLength&, sBuffer$
Text = StrConv(Text, vbFromUnicode)
lLength = ExecuteExcel4Macro("CALL(""Kernel32"",""MultiByteToWideChar"",""JJJJJJJ""," & 65001 & ", " & 0 & ", """ & StrPtr(Text) & """, " & -1 & ", " & 0 & ", " & 0 & ")")
sBuffer = Space$(lLength)
lLength = ExecuteExcel4Macro("CALL(""Kernel32"",""MultiByteToWideChar"",""JJJJJJJ""," & 65001 & ", " & 0 & ", """ & StrPtr(Text) & """, " & -1 & ", " & StrPtr(sBuffer) & ", " & Len(sBuffer) & ")")
UTF8_Decode = Left$(sBuffer, lLength - 1)
End Function
Sub Test_Ter()
Dim stg, zzz, i%, Bazinga$
stg = Array("NOM1 Marie-Ségolène", "NOM2 BÉRÉNICE", "NOM3 Marie-Ségolène", "NOM4 BÉRÉNICE", "NOM5 Marie-Ségolène", "NOM6 BÉRÉNICE", "NOM7 Marie-Ségolène")
ReDim zzz(UBound(stg))
For i = LBound(stg) To UBound(stg)
zzz(i) = UTF8_Decode(CStr(stg(i)))
Next
Bazinga = Join(zzz, Chr(10))
MsgBox Bazinga
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

•>patricktoulon
Merci mais personnellement je trouve l'emploi de ExecuteExcel4Macro("CALL(""Kernel32"" "imbit*ble" car difficilement intelligible
(sans parler de ...l'odeur de malware que cela évoque
 

patricktoulon

XLDnaute Barbatruc
ben quand c'est soi même qui code pas de soucis
la syntaxe est plus facile qui n'y parait

on a juste afaire attention aux ""JJJCCCAAANNNPPP......" en fonction des arguments et de se que ça retourne (long/string)
 

Staple1600

XLDnaute Barbatruc
Re

Oui, c'est sûr "JJJCCCAAANNNPPP", ça parle à tout le monde, notamment à la plupart des demandeurs
Et je ne vois pas le gain à procéder de la sorte (mais ce n'est que mon avis)
(C'est pas plus rapide, le seul avantage c'est de créer des fils à rallonge sur XLD, ...n'est ce pas arthour ? (lol)
 

Amilo

XLDnaute Accro
Bonjour à tous,

Voici une autre proposition avec Power query avec cette fois remplacement des caractères.
J'ai pris le fichier du message #31 à mapomme pour l'exemple
Le fichier a été enregistré sous l'extension .csv (séparateur : point-virgule)
Depuis un nouveau classeur, j'importe le fichier .csv en UTF8


Cordialement
 

Pièces jointes

  • Conversion depuis UTF-8 (v1).xlsx
    17.7 KB · Affichages: 6

Keluode

XLDnaute Nouveau
Bonjour,
Si comme moi, certains sont tombé sur ce forum et sont tombés sur ces personnes qui manquent de respect seulement parce qu'ils ne comprennent pas la question, voici la réponse. (En espérant que j'aie compris la question...)

Pour indiquer à Excel que nous voulons supprimer le caractère spécial, il faut mettre la "vague" devant le caractère à supprimer.

ALT+126 : ~

Ex pour supprimer un astérisque : ~*
 

Discussions similaires

Réponses
0
Affichages
228
  • Question
Microsoft 365 macro
Réponses
6
Affichages
272
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…