IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème suppression de filtre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2019
    Messages : 12
    Par défaut Problème suppression de filtre
    Bonjour je n'arrive pas à retirer mes filtres de ma feuil "data" à l'ouverture de mon fichier excel. Auriez vous une idée pour m'aider

    Je souhaite désactiver les filtres non les supprimer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Workbook_Open()
     
     Worksheets("data").AutoFilterMode = False
     
    End Sub
    Merci davance. Marty

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Voici le code que j'utilise pour gérer mes filtres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Option Explicit 'Rend la déclaration des variables obligatoire
    Option Compare Text 'Fait en sorte que VBA ne dsitingue pas les majuscules des minuscules quand il fait des comparaisons
    Option Private Module 'Optionel - Rend les routines de ce module invisibles à l'utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub RemoveFilterSelection(prmWorksheet As Worksheet)
        'La gestion d'erreur sert quand il n'y a pas de filtre définir
        On Error Resume Next
        prmWorksheet.ShowAllData
        On Error GoTo 0
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub RemoveAllFilterSelectionFromUnprotectedSheet(prmWorkbook As Workbook)
        'Supprime les sélection par filtre dans toutes les pages non protégées.
     
        Dim WS As Worksheet: For Each WS In prmWorkbook.Worksheets
     
            If WS.ProtectContents = False Or WS.Protection.AllowFiltering = True Then
                Call RemoveFilterSelection(WS)
            End If
     
        Next WS
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Test_DeleteFilter()
        Call DeleteFilter(ActiveSheet)
    End Sub
     
    Public Sub DeleteFilter(prmWorksheet As Worksheet)
     
        If prmWorksheet.AutoFilterMode Then
            prmWorksheet.Cells.AutoFilter
        End If
     
    End Sub
    J'ai mis tout cela dans un module que j'importe dans les classeurs où j'en ai besoin.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par MartySalade2 Voir le message
    Je souhaite désactiver les filtres non les supprimer
    A ma connaissance, ce n'est pas possible.

    La seule méthode que je connaisse qui s'en rapproche est de sauvegarder les paramètres du filtre dans une variable de type Autofilter avant de le supprimer et d'utiliser cette variable pour replacer le filtre.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2019
    Messages : 12
    Par défaut
    Citation Envoyé par Menhir Voir le message
    A ma connaissance, ce n'est pas possible.

    La seule méthode que je connaisse qui s'en rapproche est de sauvegarder les paramètres du filtre dans une variable de type Autofilter avant de le supprimer et d'utiliser cette variable pour replacer le filtre.
    As tu une idée de comment faire ça ? Je débute en VBA

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Comme l'a dit Menhir () il n'est pas possible de désactiver le filtre : il ne peut pas y avoir plusieurs filtres sur une même feuille.

    Par contre il est possible de supprimer le filtrage en cours, sans supprimer le filtre avec .ShowAllData.

    Pour ma part, je ne me contente pas de supprimer le filtrage (afficher toutes les données), je préfère aussi supprimer le filtre et le remettre à la bonne place car un utilisateur a pu le placer ailleurs sur la feuille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Option Explicit
     
    Sub Test()
      Call SupprimerFiltrage(ActiveSheet, "A4")
    End Sub
     
    Public Sub SupprimerFiltrage(wsh As Worksheet, adrDebutTableau As String)
    ' Supprime le filtre en cours sur la feuille et remet un filtre sur les données ciblées
      With wsh
        ' Supprimer le filtre actuel
        If Not .AutoFilter Is Nothing Then
          If .FilterMode Then .ShowAllData
          .AutoFilter.Range.AutoFilter
        End If
        ' Remettre le filtre automatique
        .Range(adrDebutTableau).CurrentRegion.AutoFilter
      End With
    End Sub

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 572
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 572
    Par défaut
    Bonjour à tous
    Citation Envoyé par Patrice740 Voir le message
    ... il ne peut pas y avoir plusieurs filtres sur une même feuille
    Heu si, avec plusieurs tableaux structurés sur une même feuille on peut avoir un filtre par tableau que l'on peut gérer séparément...
    ShowAllData est inutile si on le fait suivre de AutoFilter.Range.AutoFilter

Discussions similaires

  1. [WD-2007] Problème suppression filtre publipostage
    Par ggurba dans le forum Word
    Réponses: 3
    Dernier message: 26/03/2011, 11h34
  2. Réponses: 6
    Dernier message: 01/06/2006, 15h11
  3. Problème suppression table
    Par djuddju dans le forum Oracle
    Réponses: 1
    Dernier message: 14/04/2006, 17h02
  4. [Upload] Problème suppression de fichier
    Par julihus dans le forum Langage
    Réponses: 16
    Dernier message: 30/03/2006, 20h40
  5. [VBA-A] Problème Suppression enreg en cours
    Par _developpeur_ dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 20h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo