Filtre dans Excel sous VBA et cases vides
Résolu
GrifOli
Messages postés
2223
Statut
Membre
-
GrifOli Messages postés 2223 Statut Membre -
GrifOli Messages postés 2223 Statut Membre -
Bonjour,
J'utilise une macro pour faire un filtre sur les cellules A4 à AD23 (je veux mettre en ordre alphabétique la colonne B5:B23). J'ai utilisé une macro d'enregistrement car je ne connais pas vraiment le VBA. Lorsque je le fais manuellement, les noms sont placés en ordre alphabétique, alors que les cases vides sont en dessous des noms.
Cependant, lorsque j'attribue ma macro à un bouton (présent sur une autre feuille excel), la macro met les cases vides en haut de la liste, puis les noms suivent en ordre alphabétique en-dessous.
Y a-t-il moyen de forcer la macro dans VBA pour que les cases vides soient placées après les noms que je filtre?
Voici mon code:
Merci,
Olivier
J'utilise une macro pour faire un filtre sur les cellules A4 à AD23 (je veux mettre en ordre alphabétique la colonne B5:B23). J'ai utilisé une macro d'enregistrement car je ne connais pas vraiment le VBA. Lorsque je le fais manuellement, les noms sont placés en ordre alphabétique, alors que les cases vides sont en dessous des noms.
Cependant, lorsque j'attribue ma macro à un bouton (présent sur une autre feuille excel), la macro met les cases vides en haut de la liste, puis les noms suivent en ordre alphabétique en-dessous.
Y a-t-il moyen de forcer la macro dans VBA pour que les cases vides soient placées après les noms que je filtre?
Voici mon code:
Sub alphab()
'Mettre en ordre alphabétique les feuilles "p1" à "p30"
ActiveWorkbook.Worksheets("p1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("p1").Sort.SortFields.Add Key:=Range("B5:B23"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("p1").Sort
.SetRange Range("A4:AD23")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("p1").Select
Range("A1").Select
Sheets("Saison").Select
Range("A1").Select
End Sub
Merci,
Olivier
A voir également:
- Filtre dans Excel sous VBA et cases vides
- Word et excel gratuit - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Liste déroulante excel - Guide
- Si et ou excel - Guide
- Déplacer colonne excel - Guide
3 réponses
Ok je crois savoir le problème.
C'est que mes cellules vides font référence à une autre cellule qui est vide. Et je lui ai mis une fonction;
=SI(Liste!B5="";"";Liste!B5)
Et puisque la case est vide, il ne marque rien. Mais je crois que Excel voit cette cellule comme étant une cellule qui contient des lettres. Serait-ce possible?
C'est que mes cellules vides font référence à une autre cellule qui est vide. Et je lui ai mis une fonction;
=SI(Liste!B5="";"";Liste!B5)
Et puisque la case est vide, il ne marque rien. Mais je crois que Excel voit cette cellule comme étant une cellule qui contient des lettres. Serait-ce possible?
Une question avant d'aller plus loin...
Quand cela te met les cellules vides au début, l'ordre alphabétique en dessous ne serait il pas inversé lui aussi... De Z vers A ?
Cordialement
Kaname63
Quand cela te met les cellules vides au début, l'ordre alphabétique en dessous ne serait il pas inversé lui aussi... De Z vers A ?
Cordialement
Kaname63
Non, après les cellules vides, les cellules sont classées de A vers Z.
J'ai réglé mon problème en nommant toutes mes cellules "zzz" auxquelles mes fonctions font référence, puis en donnant à mes cellules la mise en forme conditionnelle suivante; si la cellule = zzz, alors mettre la couleur du texte en blanc.
Résultat: lorsque Excel met mes cellules en ordre alphabétiques, les cellules nommées "zzz" sont en bas de la liste, et elles semblent vide car le texte est en blanc!
J'ai réglé mon problème en nommant toutes mes cellules "zzz" auxquelles mes fonctions font référence, puis en donnant à mes cellules la mise en forme conditionnelle suivante; si la cellule = zzz, alors mettre la couleur du texte en blanc.
Résultat: lorsque Excel met mes cellules en ordre alphabétiques, les cellules nommées "zzz" sont en bas de la liste, et elles semblent vide car le texte est en blanc!