XL 2016 supprimer caractères spéciaux

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bonjour à toi aussi patriclktoulon...🙄

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

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
 
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é")
 
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 😛

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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
382
  • Question Question
Réponses
9
Affichages
927
  • Question Question
Microsoft 365 Formule excel
Réponses
7
Affichages
176
  • Question Question
Microsoft 365 macro
Réponses
6
Affichages
530
Réponses
4
Affichages
140
Retour