Aide sur Filtre (excel VBA)

kurth Messages postés 22 Statut Membre -  
kurth Messages postés 22 Statut Membre -
Bonjour,
dans une macro excel, j'ai créé un filtre automatique selon une entrée dans une textBox qui fonctionne très bien.
si je tape "re" le filtre sortira tous les mots contenant "re" dans le champs mais tout ceux contenant "ré" ou "rê" ou "rè" ne sortent pas.
est il possible de modifier la syntaxe du filtre pour que les accents soient pris en compte ?

Merci d'avance.

PS: ci dessous le code avec "Texte" la variable contenant "re" pour l'exemple
sheets("données").range("$A$1:$A$6000").AutoFilter Field:=1, Criteria1:="=*" & Texte & & "*", Operator:=xlAnd

A voir également:

2 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir,

Il n'y a pas de syntaxe permettant de dire à excel de tenir compte ou non des accents.
Le OU est trop limité...
Pas d'autre choix je pense que de créer une autre colonne avec les lettre sans accents.
Une fonction personnalisée qui pourrait t'aider :
Public Function StripSpecialChars(ByVal iString As String, Optional _
      CompareMethod As VbCompareMethod = vbTextCompare, Optional Lookup As String _
      = "àâäéèêëïùç", Optional ReplaceBy As String = "aaaeeeeiuc") As String 
  Dim i As Long 
  
  ' dans le doute on ne remplace pas, on supprime le caractère 
  If Len(ReplaceBy) < Len(Lookup) Then ReplaceBy = ""
  For i = 1 To Len(Lookup)
      ' on remplace tous les caractères de Lookup 1 par 1 dans iString 
      iString = Replace(iString, Mid(Lookup, i, 1), (IIf(ReplaceBy = "", "", _
          Mid(ReplaceBy, i, 1))), , , CompareMethod)
  Next i
  StripSpecialChars = iString
  End Function

Je l'ai récupérée il y a longtemps et ne peut plus citer la source, merci à l'auteur quand même :-)
Et une liste plus complète de caractères à corriger :
À Á Â Ã Ä Å Ç È É Ê Ë Ì Í Î Ï Ñ Ò Ó Ô Õ Ö Ù Ú Û Ü Ý
à á â ã ä å ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ù ú û ü ý ÿ
avec la correction :
A A A A A A C E E E E I I I I N O O O O O U U U U Y
A A A A A A C E E E E I I I I O N O O O O O U U U U Y Y
(je passais tout en majuscule, tu peux modifier la 2nde ligne...)

eric
0
kurth Messages postés 22 Statut Membre 1
 
je voulais justement éviter de passer par un artifice de ce genre.
tanpis et merci quand même pour cette proposition de solution.
0