Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 filtrer des lignes en vba

halecs93

XLDnaute Impliqué
Bonjour à tout le monde. Et encore un grand merci à toutes les personnes qui m'ont permis de bien avancer.

Je poursuis donc mon classeur "planning" et je bute sur une chose. Il s'agit de déclencher les filtres afin de ne faire apparaître, par exemple, que les lundis. J'ai bricolé un petit quelque chose qui semble fonctionner. En cliquant sur un des jours de la semaine, ça filtre bien (même si ce n'est pas super joli de voir apparaitre le bouton de filtrage).

Mais si je veux obtenir, toujours par exemple, uniquement les lundis et sans les lignes "remplaçant".... je bloque.

Pas certain que ça puisse se faire, mais je poste quand même

Encore une fois, un grand merci
 

Pièces jointes

  • halecs93- PLANNING- exceldownloads.xlsm
    599.9 KB · Affichages: 12
Solution
Re

En partant de ton dernier fichier
1) J'ai renommer les images avec le nom des jours
2) Affecter à ces images la même macro (sur le même principe que précédemment)
Code:
Sub macro_Bouton()
Jour = UCase(ActiveSheet.Shapes(Application.Caller).Name)
Filtrer Jour
End Sub
Private Sub Filtrer(ByVal Jour As String)
Dim ws As Worksheet
    Set ws = ActiveSheet
    ' Déproteger la feuille
    If ws.ProtectContents Then
        ws.Unprotect
    End If
    ' Protéger la feuille en autorisant la sélection des cellules verrouillées
    ws.Protect UserInterfaceOnly:=True, AllowFiltering:=True
    ' Appliquer le filtre
    ws.Range("A6:A500").AutoFilter Field:=1, Criteria1:=Jour, VisibleDropDown:=0
    ' Mettre à jour la cellule BE1 avec le nom de la...

halecs93

XLDnaute Impliqué
Je dois admettre que là, je ne sais plus...à force de bricoler avec des bouts de code ici ou là
 

TooFatBoy

XLDnaute Barbatruc
Peut-être :
- sélectionner l'en-tête de la ligne à supprimer,
- cliquer sur un bouton unique qui demande si on veut vraiment supprimer la ligne.

Ce n'est qu'une suggestion. Si le classeur n'est pas si lent que ça, alors laisser comme c'est actuellement.
 

Staple1600

XLDnaute Barbatruc
@halecs93
Alors quid de ma question dans le message#12


Sinon personnellement, je n'afficherai que le mois en cours sur la feuille MODELE
(pour alléger le classeur)

PS: je confirme que le classeur n'est pas très stable chez moi.
Je vais essayer en ayant que ce classeur ouvert.
 

Staple1600

XLDnaute Barbatruc
Re

@halecs93
Je ne sais toujours pas si tu testé la macro du message#12
et surtout ce que tu en penses

Du coup, la feuille ne représente qu'une semaine
C'est pas grave puisque tu archives sur la feuille RECAP, non ?
Et si sur ta feuille MODELE, on utilisait des vrais dates, on pourrait visualiser les données
(par mois, par trimestre, par semestre etc... en utilisant un TCD)


Pour ma suggestion, voila plus ou moins à quoi je pense


Mais comme ton projet est déjà avancé et qu'apparemment ton Excel ne bronche pas (contrairement au mien)
j'en resterai là
(sauf si cela t'intéresse de voir plus)
 

halecs93

XLDnaute Impliqué
Le modèle me sert à construire le planning.... ensuite, lorsque je créé une semaine, c'est pour gérer surtout les remplacements. Le planning initial n'a pas vocation, même si cela peut arriver de temps à autres.

Sinon, c'est vrai que je ne souhaites pas tout refaire à zéro
 

Staple1600

XLDnaute Barbatruc
Re

@halecs93
Pas d'erreur chez moi (Office 365)
Merci d'avoir testé et pour le feedback

Et comme ceci ?
Code:
Private Sub FILTRAGE(ByVal Jour As String)
ActiveSheet.Unprotect
Application.ScreenUpdating = False
Range("BV4").Formula = "=AND(A4=" & Chr(34) & Jour & Chr(34) & ",D4<>""remplaçant"")"
Range("A3:D497").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("BV3:BV4"), Unique:=False
End Sub
Sub mMARDI()
'ActiveSheet.ShowAllData
FILTRAGE "MARDI"
End Sub
Tu lances bien la macro mMARDI en étant sur la feuille MODELE ?
 

halecs93

XLDnaute Impliqué
Pour cette version, pas d'erreur. Mais encore une fois... ce n'est pas ce que je souhaite.

Je dois pouvoir filtrer "remplaçant" ou pas même si je laisse tous les jours de la semaine apparent, ou bien bien filtrer "remplaçant" ou pas en ayant filtré un jour précis
 

Staple1600

XLDnaute Barbatruc
Re,

Désolé, je pensais avoir été clair et ce n'est, semble-t-il pas le cas.

Ma demande n'était pas claire, à priori... je parlais d'exemple. Mais en fait, c'est un filtre sur chaque colonne que je souhaitais mettre en place..... désolé pour ma syntaxe approximative
Tu pensais le contraire tout à l'heure

On n'est pas dans ta tête.

Plus on aura de détails, d'explications, plus on sera efficace

A toi de voir.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…