Désactiver les filtres automatiquement

Bonjour,

J’utilise un tableau que je remplis à l’aide d’un formulaire et tout marche bien. Parfois, je suis obligé de filtrer les données et j’aimerais qu’à la fermeture d’Excel les filtres de données se désactivent automatiquement et que toutes les données apparaissent. Si vous aviez une solution, cela me rendrait bien service, merci d’avance

Bonjour,

Merci de joindre un fichier à ta demande.

Cdlt.

Re bonjour

Je joins donc un fichier, c'est pas le bon mais c'est le même principe.

Bonjour,

A tester dans ton vrai classeur.

Cdlt.

33xlp-toutoune.xlsm (98.27 Ko)
Private Sub Workbook_Open()
Dim ws As Worksheet

    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Worksheets
        If Not ws.AutoFilterMode Then
            ws.Range("A3").AutoFilter
        Else
            If ws.FilterMode Then ws.ShowAllData
        End If
    Next ws

End Sub

Bonjour,

Sur le bon tableau, un message apparait à la ligne : WS.Range (« A3 »). AutoFilter, de plus il y a déjà un code dans ThisWorkbook et donc un message d’erreur apparait :

Erreur de compilation.

Nom ambigu détecté : Workbook_Open

Du coup je joins le fichier avec toutes les macros, si tu as le temps de le regarder pour voir ce qui cloche.

Merci pour ton aide

Re,

Tu as 2 procédures identiques. Des feuilles sont masquées et d'autres sont protégées par mot de passe.

Tu as choisi de joindre un fichier non représentatif.

Re bonjour

Je joins donc un fichier, c'est pas le bon mais c'est le même principe.

Que fait-on?

Cdlt.

Re

Je joins donc un fichier sans mot de passe, les feuilles masquées ne servent que pour des listes déroulante.

Re,

A tester.

Cdlt.

30pa-essai2.xlsm (146.04 Ko)

Bonsoir,

Désolé de t'importuner mais lorsque je retranscris ton code dans le bon fichiers j'ai deux messages d'erreur dont je te met la capture.

Merci pour ton aide

capture

Bonsoir,

Suite à ce message, demande le débogage et envoie moi la partie surlignée en jaune.

Ou mieux joins ton fichier.

Cdlt.

Re bonsoir

Pour le moment je te joins la capture.

capture1

Re,

Fais attention à la ligne 1 de ton fichier (cellules fusionnées) et assure toi que tes données (avec entêtes de colonne)

débutent en A2.

Cdlt.

Bonsoir,

J’ai suivi ton conseil et ça marche pour la feuille « basededonnée » mais si je mets un filtre sur la feuille « lavage et la feuille basededonnée » alors j’ai la même erreur. Une idée ?

Merci

Bonjour,

Assure toi que les 2 feuilles aient la même structure.

Que veux tu que je dise de plus sans exemple sous les yeux?

Cdlt.

Bonjour,

Ta solution marche très bien tant que la feuille n'est pas protégée, mais si on protège les feuilles alors un message d'erreur apparaît.

Voilà les dernières nouvelles .

Encore merci.

Bonjour,

Voir fichier.

Cdlt.

24pa-essai2.xlsm (150.38 Ko)
Private Sub Workbook_Open()
Dim ws As Worksheet

    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Worksheets
        If ws.Visible = True Then
            If ws.ProtectContents Then
                UnProtectWorksheet ws
            End If
            If Not ws.AutoFilterMode Then
                ws.Range("A2").AutoFilter
            Else
                If ws.FilterMode Then ws.ShowAllData
            End If
            ProtectWorksheet ws
        End If
    Next ws

    Application.Goto Worksheets("basededonnée").Cells(1)

End Sub
Option Private Module

Public Const PWD As String = "excel"

Public Sub ProtectWorksheet(ws As Worksheet)

    ws.Protect _
            Password:=PWD, _
            DrawingObjects:=True, _
            Contents:=True, _
            Scenarios:=True, _
            AllowSorting:=True, _
            AllowFiltering:=True
End Sub

Public Sub UnProtectWorksheet(ws As Worksheet)

    ws.Unprotect _
            Password:=PWD
End Sub

Re bonjour

Absolument parfait encore merci de ta patience. je trouve pas le bouton résolu.

Bonjour,

resolu

Merci voila c'est fait

Rechercher des sujets similaires à "desactiver filtres automatiquement"