Identifier dans une cellule au moins un caractère issu d'une liste

Bonjour à tous,

Nous cherchons à fiabiliser les noms de fichiers sauvegardés sur un serveur de fichiers.

Pour cela, nous avons réussi à exporter tous les noms de fichiers sur un document.

Ces noms figurent sur une colonne tout simplement, la A.

Pourquoi cette fiabilisation ? Malgré de nombreux rappels faits, certains fichiers ne sont pas correctement nommés. Ils comportent des « é », « à », « è », « »(espaces)...et d’autres caractères que nous n'avons pas encore découvert et surtout que nous avons pourtant dit de ne pas utiliser dans le nommage des fichiers et nous cherchons à les identifier (à la fois les caractères différents du bon nommage, si possible, et surtout les fichiers concernés pour être bien renommés par les services qui devront le faire suite à notre fiabilisation).

Pour recenser les fichiers qui sont mal nommés, nous voudrions effectuer une formule CHERCHE.

Si nous n'avions que le « é » qui avait été mis en dehors des chiffres et des lettres sans accent alors je pense bien que l’on puisse faire une formule, en B2, =CHERCHE(é;A2) et nous avons le résultat pour savoir si la cellule A2 contient ou pas un « é » et en tirant vers le bas etc.

Par contre, et c’est là ma question, quand cela concerne plusieurs caractères que nous avons identifiés mais que nous pouvons faire évoluer ;

  • doit-on cumuler les formules CHERCHE par des OU ? ; ce qui ferait que pour 3 caractères (é,è,à) il y aurait une formule avec 3 CHERCHE...et 10 caractères...10 CHERCHE et ainsi de suite..., soit une formule à rallonge…..(solution que nous voulons éviter dans la mesure du possible)
  • peut-on indiquer dans la formule CHERCHE une liste de caractères identifiés quelque part ?J’ai essayé d’inscrire les caractères à éviter dans une colonne et nommer cette plage pour inclure la plage dans la formule CHERCHE, mais sans succès.

Ou à l’inverse, est-ce qu’il y aurait une autre formule qui me dirait si le nom comporte des caractères différents (y compris les espaces) que les chiffres et les lettres sans accent ? C’est peut-être le plus simple.

Merci beaucoup par avance.

Bonjour Paticotico

Ou à l’inverse, est-ce qu’il y aurait une autre formule qui me dirait si le nom comporte des caractères différents (y compris les espaces) que les chiffres et les lettres sans accent ? C’est peut-être le plus simple.

Dans ce cas, la meilleure méthode est d'utiliser les expressions régulières.

Je vais te faire un exemple ...

Un exemple pour l'identification, donc équivalent au "CHERCHE"

mais si tu veux une correction immédiate, on peut faire une macro, tout dépend aussi de ce que tu souhaites : supprimer le caractère ou le remplacer ?

Voici une fonction pour corriger

Option Explicit

Function transformer(ByVal chaine As String) As String
Dim i%, j%
Dim avant As String
Dim apres As String
    avant = "ÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ "
    apres = "AAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy_"
    For i = 1 To Len(chaine)
        j = InStr(avant, Mid(chaine, i, 1))
        If j > 0 Then Mid$(chaine, i, 1) = Mid$(apres, j, 1)
    Next i
    transformer = chaine
End Function
9transformer.xlsm (13.69 Ko)

Salut,

Pour ma part je te propose ce type de formule matricielle. (A valider avec ctrl+maj+entrée)

Ne pas laisser de cases vides dans la zone des caractères à rechercher sinon ça foire :p (renseigner "" par exemple)

Bon courage !

Girodo,

Tout d'abord merci à vous deux.

Je ne souhaite pas immédiatement modifier les noms de fichiers mais pouvoir les identifier de telle sorte à communiquer aux services auteurs de ceux-ci, leurs résultats et qu'ils procèdent aux rectifications.

Après je note bien la manip pour la modif immédiate ; au cas où, merci encore une fois.

Par contre, c'est vrai que j'ai posté dans la partie excel, puisque je l'utilise à mon domicile et je pensais que si il existait une formule simple que je n'avais pas trouvé alors j'allais pouvoir comprendre le raisonnement pour l'adapter sur Calc à mon travail (car pas d'Excel).

Et si ce n'est pas possible sur Calc ; alors je le fais par Excel à la maison c'est tout et je me transfère le résultat des "mauvais élèves" au boulot.

Vu vos réponses, je vois que ce n'est pas si évident que ça : respects ! et merci encore.

Salut,

Pour ma part je te propose ce type de formule matricielle. (A valider avec ctrl+maj+entrée)

Ne pas laisser de cases vides dans la zone des caractères à rechercher sinon ça foire :p (renseigner "" par exemple)

Bon courage !

Girodo,

Je n'arrive pas à la valider

En fait je ne vois pas la formule que tu m'as donné...ou pas

Voici une fonction pour corriger

Option Explicit

Function transformer(ByVal chaine As String) As String
Dim i%, j%
Dim avant As String
Dim apres As String
    avant = "ÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ "
    apres = "AAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy_"
    For i = 1 To Len(chaine)
        j = InStr(avant, Mid(chaine, i, 1))
        If j > 0 Then Mid$(chaine, i, 1) = Mid$(apres, j, 1)
    Next i
    transformer = chaine
End Function

Pour ceci, c'est impeccable. Du coup, ça transforme et je peux dans une colonne à côté détecter si la cellule transformée est différente de celle d'origine. Ca peut répondre à notre question, je vois ça et te tiens au courant.

Merci.

Si c'est ok, tu peux ...

Bonjour à tous,

Merci beaucoup Steelson, nous nous sommes débrouillés avec le fichier transformer.xlsm que l'on peut ouvrir avec CALC sans aucun problème et l'exploiter.

Cela a considérablement fait avancer rapidement les choses.

Si c'est ok, tu peux ...

Re,..

Hasard..., j'étais entrain de répondre...et de mettre en résolu.

Rechercher des sujets similaires à "identifier caractere issu liste"