Activer macro excel au changement d'onglet

cigalinette Messages postés 2 Statut Membre -  
 LeRogerTroutman -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. cigalinette Messages postés 2 Statut Membre
     
    Un grand merci, ça marche nickel

    @+
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    hé bé, t'es une vraie cigale... Tu as chanté tout le mois au lieu de travailler ? ;-)
    Merci pour le retour
    0
  4. LeRogerTroutman
     
    J'ai utilisé le :

    Private Sub Worksheet_Activate()
    ...
    End Sub

    Ca marche nickel, merci eric.

    Le Roger
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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