Excel macro désactiver filtre automatique

Résolu/Fermé
evevdll Messages postés 81 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 13 décembre 2009 - 9 nov. 2007 à 19:49
 Bernard BB47 - 3 sept. 2017 à 08:38
Bonjour,
Je suis débutante en macro mais j'aime apprendre. J'ai créé une macro qui envoie certaines données d'une feuille1 dans une feuille2.
Cependant, si la feuille2 contient un filtre automatique, les données envoyées écrasent les lignes masquées de mon filtre au lieu de les saisir à la suite de ma feuille. J'aimerai donc désactiver automatiquement le filtre pour ne pas perdre les données de la feuille2. N'ayant pas assez de connaissances en macro, je n'arrive pas à trouver les lignes de code.
Merci de m'aider
Eve
A voir également:

5 réponses

PBGunner Messages postés 64 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 29 juillet 2008 64
10 nov. 2007 à 18:34
Salut Eve,

Je suis ravi que ca ai pu t'aider.
Dans l'aide de Microsoft basic, tu peux aussi trouver un bout de script qui permet d'enregister les paramètres du filtre en cours dans des variables, et tu peux réappliquer le filtre en fin de script... Donc au moment au tu fais le test avec la commande
If Worksheets("Feuil2").AutoFilterMode Then
tu peux y ajouter le script Microsoft adapté pour réappliquer le filtre en fin de macro.

Pour t'aider, je te met le script complet ci dessous, à toi de le personnaliser. Si tu veux de l'aide dessus, n'hésite pas!

Extrait de l'aide MS:
L'exemple suivant montre comment stocker les critères d'adresse et de filtrage pour le filtre en cours et comment appliquer de nouveaux filtres.

Dim w As Worksheet
Dim filterArray()
Dim currentFiltRange As String

Sub ChangeFilters()

Set w = Worksheets("Crew")
With w.AutoFilter
    currentFiltRange = .Range.Address
    With .Filters
        ReDim filterArray(1 To .Count, 1 To 3)
        For f = 1 To .Count
            With .Item(f)
                If .On Then
                    filterArray(f, 1) = .Criteria1
                    If .Operator Then
                        filterArray(f, 2) = .Operator
                        filterArray(f, 3) = .Criteria2
                    End If
                End If
            End With
        Next
    End With
End With

End Sub



Voila bon courage!

ps: non je n'admire pas particulièrement l'équipe d'Arsenal, je traine ce pseudo depuis près de 10ans, a l'époque on se donnait des surnoms quand on jouait au paintball avec des amis, comme on me surnommait Gunner parceque je visais plutot bien, j'ai associé PB (PaintBall) et Gunner... voila voila...

a+!
14
evevdll Messages postés 81 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 13 décembre 2009 51
11 nov. 2007 à 00:44
Merci à toi Gunner
Eve
0
Merci pour votre aide.
Quand on ne sait créer des macro que par l'enregistrement automatique, c'est difficie de faire des If , Then...
0