Les Allergies
Alimentaires
Posez votre question Signaler

Excel macro désactiver filtre automatique [Résolu]

evevdll 81Messages postés 9 novembre 2007Date d'inscription - Dernière réponse le 11 nov. 2007 à 00:56
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
Lire la suite 

Excel macro désactiver filtre automatique »

5 réponses
Réponse
+3
moins plus
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+!
evevdll- 11 nov. 2007 à 00:44
Merci à toi Gunner
Eve
Ajouter un commentaire
Réponse
+1
moins plus
Salut!
Le mieux c'est de vérifier si le filtre auto est activé dans la feuille destination avant de faire l'export des données.
Pour ca, c'est simple:

Sub import_vers_feuil2()

If Worksheets("Feuil2").AutoFilterMode Then
     Worksheets("Feuil2").AutoFilterMode = False
End If

[Lance ta procédure d'import]

End Sub



a+
Ajouter un commentaire
Réponse
+0
moins plus
Merci PBGunner,
Avec ce que tu m'as donné, j'ai réussi. Cependant, je ne voulais pas enlever le filtre complètement mais seulement désactiver le filtrage en cours. Tu m'as mise dans la bonne voie car j'ai utilisé ta macro et l'ai complétée avec une autre macro pour réactiver le filtre à la fin (n'ayant pas assez de connaissances en macro, j'ai utilisé l'enregistreur de macro et l'ai analysé). Tu m'as beaucoup aidée et je t'en remercie.
Au fait PBGunner parce que tu aimes l'équipe d'Arsenal ?
Merci aussi pour la rapidité de ta réponse !
A+
Eve
Ajouter un commentaire
Réponse
+0
moins plus
J'ai utilisé les 2 lignes de PBGunner :

If Worksheets("Feuille2").AutoFilterMode Then
Worksheets("Feuille2").AutoFilterMode = False
End if


et j'ai redemandé les filtres avec les lignes suivantes :
Range("A2:N2").Select
Selection.AutoFilter
Merci
Ajouter un commentaire
Ce document intitulé « Excel macro désactiver filtre automatique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?