Rechercher : dans
Par :

Excel macro désactiver filtre automatique

Dernière réponse le 11 nov 2007 à 00:56:46 evevdll, le 9 nov 2007 à 19:49:28 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Excel macro désactiver filtre automatique » dans :
[Excel] Colorer des cellules sur conditions VoirIl existe dans Excel des fonctions très pratiques mais peu connues et peu utilisées. Exemple : vous souhaitez qu'une cellule se colore automatiquement en rouge (ou autre mise en forme de police, de bordure, de trame) selon une condition : un...
Télécharger MOREFUNC (Macro complémentaire EXCEL) VoirMorefunc est une macro complémentaire proposant 67 nouvelles fonctions de feuille de calcul pour Excel. Ces fonctions sont compatibles avec Excel 95 à 2007. Elles ne sont pas portables sur d'autres plate-formes que Windows, ni sur d'autres...

1

PBGunner, le 9 nov 2007 à 20:40:38

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+

Répondre à PBGunner

2

evevdll, le 10 nov 2007 à 14:51:34

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

Répondre à evevdll

3

PBGunner, le 10 nov 2007 à 18:34:01

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+!

Répondre à PBGunner

4

evevdll, le 11 nov 2007 à 00:44:00

Merci à toi Gunner
Eve

Répondre à evevdll

5

 evevdll, le 11 nov 2007 à 00:56:46

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

Répondre à evevdll