Masquer les lignes des cellulles remplies sur une colonne
lio
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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 .
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
-
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é -
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+-
-
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 -
-
-
bonjour,
Clic droit sur l'onglet de ta feuille/Visualiser le code et colle ce codePrivate 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 -
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 voirSub Macro1()
' Macro1 Macro
Columns("D:F").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.EntireRow.Hidden = True
End Sub
et pour ré-afficherSub 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 vBASub masquer()
Columns("D:F").SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = True
End Sub