Activer macro excel au changement d'onglet

Bonjour,
la problématique est la suivante: des données sont copiées en ligne d'une feuille A à une feuille B sous certaines conditions.
Du coup, des lignes vides existent sur la feuille B. Je les cache avec un filtre vide/non vide. Le problème est qu'une fois le filtre en place, il ne cache pas les nouvelles lignes vides. Il faut le désactiver et le réactiver à la main.

1ere question: est qu'une option existe pour que le filtre soit permanent une fois pour toute et prenne en compte les nouvelles valeurs inscrites après son activation

2eme question: si non à la 1ere question, une petite macro qui désactive et réactive le filtre à chaque fois que l'on vient sur la feuille B serait bien utile. Comment faire ?

Merci d'avance pour vos réponses

@+
Configuration: Excel 2002

5 réponses

  1. Contributeur
    Bonjour tout le monde,

    thisworkbook ?
    j'aurais plutôt dit Worksheet_Activate()

    Clic-droit sur le nom d'onglet de ta feuille, 'visualiser le code', y coller le code suivant :
    Private Sub Worksheet_Activate()
        Selection.AutoFilter Field:=3, Criteria1:="<>"
    End Sub

    Si tu quittes et reviens sur ta feuille le 3ème filtre automatique sera rafraichi.
    Tu peux aussi le mettre sur le double-clic pour ne pas à avoir à sélectionner une autre feuille :
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Selection.AutoFilter Field:=3, Criteria1:="<>"
        Cancel = True
    End Sub

    eric
    0
    1. Un grand merci, ça marche nickel

      @+
      0
      1. Contributeur
        hé bé, t'es une vraie cigale... Tu as chanté tout le mois au lieu de travailler ? ;-)
        Merci pour le retour
        0
        1. J'ai utilisé le :

          Private Sub Worksheet_Activate()
          ...
          End Sub

          Ca marche nickel, merci eric.

          Le Roger
          0
          1. Contributeur
            bonjour

            Il faut placer ta macro dans thisworkbook en fonction Activate.

            Tu peux enregistrer ta macro dans un module puis la déplacer ensuite.
            -1