Masquer les lignes des cellulles remplies sur une colonne

lio -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je recherche une macro pour masquer les lignes si dans une des colonnes mes cellules sont rempli et mettre un bouton pour l'actualisé. En gros si dans mes colonnes D E F il y a des cellules rempli quand actualisant la ligne entière se masque.
Merci de votre aide .

4 réponses

  1. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
     
    Bonjour,

    Une solution sans macro :

    Créer une colonne supplémentaire et entrer dans les cellules la formule suivante :

    =+SI(OU(D2<>"";E2<>"";F2<>"");1;0)

    Activer le "Filtre" pour faire apparaître les menus déroulants dans les en-têtes de colonne.
    Dérouler le menu de la colonne supplémentaire et sélectionner le 0 pour ne faire apparaître que les lignes désirées.

    A+

    pépé
    0
  2. Zoul67 Messages postés 2001 Statut Membre 149
     
    Bonjour,

    Solution avec macro :
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("D:F")) Is Nothing Then
            If Target.Value <> "" Then Target.EntireRow.Hidden = True
        End If
    End Sub


    dans le code lié à la feuille adéquate.

    A+
    0
    1. lio
       
      Bjr Zoul67 je n'arive pas à la faire fonctionner je suis débutant faut il que je change des choses de ta macro ?
      0
    2. Zoul67 Messages postés 2001 Statut Membre 149
       
      Pour le coup, non, il n'y a rien à changer. Il faut mettre le code au bon endroit et enregistrer soit dans l'ancien format .xls soit dans le nouveau .xlsm pour activer les macros.
      Colle le code dans la fenêtre associée à la feuille :
      https://www.contextures.com/xlvba01.html#Worksheet
      0
      1. lio > Zoul67 Messages postés 2001 Statut Membre
         
        Merci, mes je voudrais qu'elle se masque quand ex: D2 E2 F2 soit remplie et pas qu'une seul.
        Est ce possible
        0
    3. Zoul67 Messages postés 2001 Statut Membre 149
       
      Private Sub Worksheet_Change(ByVal Target As Range)
          If Not Application.Intersect(Target, Range("D:F")) Is Nothing Then
              If Cells(Target.Row, 4).Value <> "" And Cells(Target.Row, 5).Value <> "" And Cells(Target.Row, 6).Value <> "" Then Target.EntireRow.Hidden = True
          End If
      End Sub
      0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    bonjour,

    Clic droit sur l'onglet de ta feuille/Visualiser le code et colle ce code
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim plage As Range, c As Range
    Application.ScreenUpdating = False
    Set plage = Union([D2:D10], [E2:E30], [F2:F30])
    For Each c In plage
    If c.Value <> "" Then
    c.EntireRow.Hidden = True
    Else
    c.EntireRow.Hidden = False
    End If
    Next c
    Application.ScreenUpdating = True
    End Sub

    pour afficher une ligne masquée il suffit d'utiliser l'outil Atteindre une des cellule cachée et supprimer pour effacer son contenu ou on ajoute un bouton
    0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,
    Excusez l'incruste

    tu peux l'automatiser avec l'enregistreur de macro qui va enregistrer ce que tu ferais manuellement
    Si les macros ne sont pas activées (XL>=2007)
    Activer les macros:
    rond office- -options Excel
    1/standard
    cocher " onglet développeur dans ruban "
    2/gestion confidentialité- paramètres centre gestion-confidentialité
    Activer toutes les macros


    tu cliques sur "développeur-enregistrer une macro"
    1/ sélectionne les colonnes DEF
    2/Accueil-rechercher et sélectionner
    3/sélectionner les cellules-constante-OK
    4/ accueil -format-masquer et afficher-masquer les lignes
    tu cliques sur "développeur-arrêter l'enregistrement
    c'est fini!

    Pour voir ton oeuvre
    développeur-macros-modifier
    ou Alt+F11 -module1-macro1
    tu devrais voir
    Sub Macro1()
    ' Macro1 Macro
    Columns("D:F").Select
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.EntireRow.Hidden = True
    End Sub


    et pour ré-afficher
    Sub Macro2()
    ' Macro2 Macro
    Cells.Select
    Selection.EntireRow.Hidden = False
    End Sub


    Pour lancer
    développeur-macro-
    sélectionner la macro voulue
    -exécuter

    si ca te convient , on t'expliquera comment lancer par un bouton

    Pour le fun,la macro en vBA
    Sub masquer()
    Columns("D:F").SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = True
    End Sub
    0