Re : Problème filtre élaboré avec format date et texte
Bonjour
merci pour le lien bebere ça me sera utile dans l'avenir
j'ai trouvé une solution à mon problème grâce à deux macros
que j'ai eu toutes les peines à mettre en place et donc je m'attends à certaines critiques
voir même quelques coups de fusil, car c'est du bricolage maison ^^
mon problème était le suivant :
impossible d'appliquer un filtre élaboré si les cellules avec des chiffres ou des dates sont formater en texte
le format n'est appliquer que si on valide le contenu des cellules " F2 + entrée "
de plus les dates ne s'affichent pas correctement
La solution :
Première macro qui va ajouter un " ' " (apostrophe) devant le contenu de chaque cellule pour le format texte :
'-----------------------------------------------------
'Macro N° 1
Sub ajouter_apostrophe()
' Sélectionne la première cellule à modifier ici D11
Range("
D11").Select
' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
' Inscrit une formule dans la cellule ayant pour référence
' la ligne active et la colonne 4 (colonne D)
Cells(ActiveCell.Row,
4).Formula = "'" & ActiveCell.Value
'passe à la ligne suivante, ne pas supprimer sinon ça marche pas
Selection.Offset(1, 0).Select
'fin de la boucle
Loop
'--------couper la macro ici si je ne veux qu'une colonne puis mettre END SUB après LOOP------
' Selectionne la seconde cellule à modifier ici E11
Range("
E11").Select
' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
' Inscrit une formule dans la cellule ayant pour référence
' la ligne active et la colonne 5 (colonne E)
Cells(ActiveCell.Row,
5).Formula = "'" & ActiveCell.Value
'passe à la ligne suivante, ne pas supprimer sinon ça marche pas
Selection.Offset(1, 0).Select
'fin de la boucle
Loop
'sélection de la cellule de départ
Range("
D11").Select
'stopper la macro
End Sub
'-----------------------------------------------------
Seconde macro qui va appliquer dans la sélection le format texte à la cellule et recopier cette même cellule sans l'apostrophe.
'-----------------------------------------------------
'Macro n° 2
Sub Enlever_Prefixes()
' cette macro vérifie dans la cellule ou la plage active
' la présence d'un préfixe (apostrophe)
' si c'est le cas elle applique le format texte
' puis elle recopie la valeur de cette cellule
Range("
D11:E15").Select
' ATTENTION VERIFIER SI C'EST LA BONNE ZONE
' boucle dans zone de cellule active
For Each cell
In ActiveSheet.UsedRange
' s’il y a un préfixe (apostrophe)
If cell.PrefixCharacter <> ""
Then
' appliquer le format texte a la cellule
Selection.NumberFormat = "@"
End If
If cell.PrefixCharacter <> ""
Then
' inscrit la valeur de la cellule sans l'apostrophe
cell.Formula = cell.Formula
End If
'fin de boucle
Next cell
'sélection de la première cellule de la sélection de départ
Range("
D11").Select
End Sub
'-----------------------------------------------------
faire les réglages (couleur orange) et déclencher les macros dans l'ordre
Résultat :
Toutes les données contenues dans les cellules sont au format texte, sont affichées (pour les dates) correctement et sont bien prises en compte dans le filtre élaboré.
Voila vous pouvez vous moquer et critiquer mais ça marche
J'avoue qu'il manque quelques chose : une troisième macro qui vérifi l'a présence des apostrophes dans la feuille mais bon.....
A+