Excel macro désactiver filtre automatique

Résolu
evevdll Messages postés 81 Date d'inscription   Statut Membre -  
 Bernard BB47 -
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

5 réponses

  1. PBGunner Messages postés 64 Statut Membre 64
     
    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
    1. evevdll Messages postés 81 Date d'inscription   Statut Membre 51
       
      Merci à toi Gunner
      Eve
      0
    2. Bernard BB47
       
      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