VBA Masquer un filtre

  • Initiateur de la discussion Initiateur de la discussion Simon N.
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Simon N.

Guest
Bonjour à toutes/tous,

j'ai effecté avec un makro sur le premier onglet (accueil) le choix de ce qu'on veux filtrer sur les autres onglets (si on filtre quand y a les mots "Exterieur" ou "Local"). Maintenant j'aimerais que lorsqu'on va sur les autres onglets, qu'on ne puisse pas changer le filtrage( se situe sur C9), le seul endroit où on choisi ce qu'on filtre est donc sur la page d'accueil (premier onglet "C5").

Quelqu'un pourrais svp m'aider?

Bien cordialement

Simon N.
 

Pièces jointes

Re : VBA Masquer un filtre

Bonjour Simon N.

Tu nous mets bien ton fichier, mais sans les feuilles qui sont filtrées !?

A+

Excuse moi.

Si jamais le filtre s'active sur la page d'accueil à Lieu du WS. et les le filtre s'active toujours sur la colonne C des autres colonnes. J'éspère que maintenant j'envoi le bon fichier.

Merci pour ton aide🙂

Simon N.
 

Pièces jointes

Re : VBA Masquer un filtre

Re,

Ok vu, ce qu'il faut faire c'est sur chaque feuille, déverrouiller les cellules qui peuvent être modifiée
Et protéger ensuite tes feuilles (éventuellement par un mot de passe)

il faut donc changer ton code par
Code:
Option Explicit
Dim Sht As Worksheet
Public x
Public allplaces


Sub Filtrage()
  Dim Dlig As Long
  ' Pour chaque feuille du classeur
  For Each Sht In ThisWorkbook.Sheets
    ' Si la feuille n'est pas "Accueil"
    If Sht.Name <> "Accueil" And Sht.FilterMode Then
      ' Déprotéger la feuille
      Sht.Unprotect
      ' Récupérer la dernière ligne de la feuille
      Dlig = Sht.Range("C" & Rows.Count).End(xlUp).Row
      ' Filtrer les lignes
      Sht.Range("C10:C" & Dlig).AutoFilter Field:=3, Criteria1:=Array(x, allplaces), Operator:=xlFilterValues
      ' protéger la feuille
      Sht.Protect
    End If
  Next Sht
End Sub


Private Sub ComboBox1_Change()
  If ComboBox1 = "" Or ComboBox1 = Worksheets("Paramètres").Range("C4").Value Then
    ' Pour chaque feuille du classeur
    For Each Sht In ThisWorkbook.Sheets
      ' Si la feuille n'est pas "Accueil"
      If Sht.Name <> "Accueil" And Sht.FilterMode Then
        ' Déprotéger la feuille
        Sht.Unprotect
        ' Afficher tous les enregistrement
        Sht.ShowAllData
        ' protéger la feuille
        Sht.Protect
      End If
    Next Sht
  End If
  x = ComboBox1
  allplaces = Worksheets("Paramètres").Range("C3").Value
  Call Filtrage
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

F
Réponses
0
Affichages
859
francoisetcheb
F
P
Réponses
15
Affichages
3 K
Pauliakov
P
A
Réponses
0
Affichages
720
A
D
Réponses
3
Affichages
3 K
D
L
Réponses
4
Affichages
1 K
Lili189
L
G
Réponses
0
Affichages
2 K
GregWD
G
R
Réponses
6
Affichages
5 K
ricardo512
R
C
Réponses
14
Affichages
9 K
Carthman
C
Retour