[Excel 2010] Remplacer les caractères non alphanumériques

Bonjour,

Il y a environ un an, vous m'aviez aidé pour Libreoffice. J'aimerais pouvoir faire la même chose avec Excel 2010 mais en mieux si possible

Problème :

Dans mes importations de données, j'ai des noms de fichiers avec des caractères non alphanumériques et mon objectif est de les corriger avec le moins de manipulations possible.

Fichier joint :

Colonne A : données d'entrée

Colonne B : noms originaux.

Colonne C : c'est là que les bons noms doivent apparaître. Avec Libreoffice, j'écrasais les formules puis je fais le Remplacer par avec [^a-z0-9_]

Colonne D : ce à quoi il faut arriver. Dans l'idéal, avoir une table de correspondance Caractères Spécial => Caractère de remplacement serait parfait mais le remplacement général par un _underscore me suffit.

L'onglet Détection liste les caractères que je souhaite détecter/remplacer.

Merci (encore !).

Bonne soirée.

13test1.xlsm (20.75 Ko)

Bonjour,

à tester,

Bonjour

Bonjour à tous

Un essai à tester avec table de correspondance.

Cela te convient-il ?

Bye !

17test1-v1.xlsm (28.96 Ko)

Merci à vous deux !

En fait, la bonne valeur (suppression des caractères spéciaux donc) doit se faire dans la colonne C directement et sans écraser la formule existante. Désolé, je n'ai pas été assez précis dans la présentation de mon problème.

Je vous joins un nouveau fichier de travail, le "vrai". Ça serait plus clair je pense.

@patrick1957 avait proposé une solution sous cette forme. Ça permet de retirer les caractères spéciaux en ajoutant un élément dans la formule existante "MajSansAccent". Le problème c'est qu'Excel se met en erreur. Tous les caractères spéciaux que je liste dans mon fichier ne sont pas compatibles.

MERCI !

PS : mon fichier est trop volumineux (2.1Mo) donc je l'ai mis sur GDrive

J'ai trouvé ça :

Function AlphaNumericOnly(strSource As String) As String
Dim i As Integer
Dim strResult As String
For i = 1 To Len(strSource)
Select Case Asc(Mid(strSource, i, 1))
Case 48 To 57, 65 To 90, 97 To 122: 'include 32 if you want to include space
strResult = strResult & Mid(strSource, i, 1)
End Select
Next
AlphaNumericOnly = strResult
End Function

J'ai ensuite ajuster les codes ASCII à mes besoins via ce tableau.

Il ne me restait plus qu'à intégrer "AlphaNumericOnly" dans mes formules

Rechercher des sujets similaires à "2010 remplacer caracteres alphanumeriques"