Masquer les lignes des cellulles remplies sur une colonne

lio -  
michel_m Messages postés 16602 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 .
A voir également:

4 réponses

pépé35530 Messages postés 2943 Date d'inscription   Statut Membre Dernière intervention   1 389
 
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
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   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
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
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   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
lio > Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, mes je voudrais qu'elle se masque quand ex: D2 E2 F2 soit remplie et pas qu'une seul.
Est ce possible
0
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   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
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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