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
Bonjour à toi aussi patriclktoulon...:rolleyes:

Donc en reprenant le code de job75 dans le fil que je citais
VB:
Sub Epure()
Dim tablo, E, t, i&
tablo = Array("Ã", "©", "Ã", "¨", "‰", "«", "¯") 'caractères spéciaux
E = Range("A1:A2", Range("A" & Rows.Count).End(xlUp))
For Each t In tablo
  For i = 1 To UBound(E)
    E(i, 1) = Application.Trim(Replace(E(i, 1), t, " "))
  Next
Next
E(1, 1) = "Epuré" 'si ligne de titres
[B1].Resize(UBound(E)) = E
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

•>david gom
Oui, désolé
C'est parce que, je n'ai pas vu d'indication de modification de ton premier message.
Maintenant, tu as deux solutions
(dont une qui se trouvait dans les archives du forum comme signalé dès le message#2...)
 

david gom

XLDnaute Nouveau
Bonjour à toi aussi patriclktoulon...:rolleyes:

Donc en reprenant le code de job75 dans le fil que je citais
VB:
Sub Epure()
Dim tablo, E, t, i&
tablo = Array("Ã", "©", "Ã", "¨", "‰", "«", "¯") 'caractères spéciaux
E = Range("A1:A2", Range("A" & Rows.Count).End(xlUp))
For Each t In tablo
  For i = 1 To UBound(E)
    E(i, 1) = Application.Trim(Replace(E(i, 1), t, " "))
  Next
Next
E(1, 1) = "Epuré" 'si ligne de titres
[B1].Resize(UBound(E)) = E
End Sub
Merci pour le temps accordé ça fonctionne.
J'ai justement modifié les noms sur le fichier pour que ce soit des noms fictifs
 

jmfmarques

XLDnaute Accro
Re
Si je m'en tiens aux réponses, telles que données, données à mes question insistantes, j'arrive à cette fonction :

VB:
Private Function machette(ch As String) As String
  Dim k As Integer, titi
  titi = Split(StrConv(ch, vbUnicode), Chr(0))
  For k = 0 To UBound(titi) - 1
    If titi(k) Like "[!A-z]" Then titi(k) = Chr(1)
  Next
  machette = Replace(Join(titi, ""), Chr(1), "")
End Function

Exemple d'utilisation :

MsgBox machette("Maintenant qu'est levée l'ambiguïté")
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir à tous :),

Une petite fonction en VBA pur glanée sur le net.
Cette fonction ne supprime pas les caractères spéciaux (ce qui à mon humble avis ne se justifie en aucun cas) mais les transforme en caractère ascii.

Voir application dans le fichier joint.

nota: Super! je lis le vba portugais et je ne le savais pas :p

Le code:
VB:
'----------------------------------------------------------------------------------------------
'---------------- Fonction sur le net
'---------------- par Marcos Rieper
'---------------- https://www.guiadoexcel.com.br/converter-utf8-para-iso-8859-1-ascii-ansi/
'---------------- Vidéo de présebntation + Code VBA
'----------------------------------------------------------------------------------------------

Function fnConverterUTF8(ByVal Texto_para_converter As String)
   Dim l As Long, sUTF8 As String
   Dim iChar As Integer
   Dim iChar2 As Integer

   For l = 1 To Len(Texto_para_converter)
      iChar = Asc(Mid(Texto_para_converter, l, 1))
      If iChar > 127 Then
         If Not iChar And 32 Then
         iChar2 = Asc(Mid(Texto_para_converter, l + 1, 1))
         sUTF8 = sUTF8 & ChrW$(((31 And iChar) * 64 + (63 And iChar2)))
         l = l + 1
      Else
         Dim iChar3 As Integer
         iChar2 = Asc(Mid(Texto_para_converter, l + 1, 1))
         iChar3 = Asc(Mid(Texto_para_converter, l + 2, 1))
         sUTF8 = sUTF8 & ChrW$(((iChar And 15) * 16 * 256) + ((iChar2 And 63) * 64) + (iChar3 And 63))
         l = l + 2
      End If
         Else
         sUTF8 = sUTF8 & Chr$(iChar)
      End If
   Next l
   fnConverterUTF8 = sUTF8
End Function
 

Pièces jointes

  • Conversion depuis UTF-8 (v1).xlsm
    16.4 KB · Affichages: 8
Dernière édition:

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki