Aide sur Filtre (excel VBA)

Fermé
kurth Messages postés 21 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 24 septembre 2013 - 3 sept. 2010 à 14:01
kurth Messages postés 21 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 24 septembre 2013 - 6 sept. 2010 à 14:44
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 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
3 sept. 2010 à 21:49
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 21 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 24 septembre 2013 1
6 sept. 2010 à 14:44
je voulais justement éviter de passer par un artifice de ce genre.
tanpis et merci quand même pour cette proposition de solution.
0