Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Faire disparaitre une case si vide

afages

XLDnaute Nouveau
Bonjour,

Nous avons un fichier excel avec deux feuilles.
Sur la première des cases à cocher, sur la seconde lorsque les cases sont cochées un affichage de phrases.

Nous aimerions trouver une solution afin que les cases vides (car la case sur la feuille 1 n'ont pas été coché) puisse disparaitre à l'affichage.
En effet, suivant les réponses, cela fait des gros blocs de cases vides.

En espérant avoir été claire, merci par avance pour votre aide.

Adeline
 
Solution
Il y a plus simple, plus besoin de formules, affectez aux cases à cocher cette macro :
VB:
Sub Affiche_Masque()
With Range(ActiveSheet.Shapes(Application.Caller).ControlFormat.LinkedCell) 'cellule liée
    Sheets("Ordre opération").Rows(.Row).Hidden = Not .Value
End With
End Sub
Les cellules liées dans la 1ère feuille doivent correspondre aux lignes à masquer dans la 2ème.

Fichier (2).

afages

XLDnaute Nouveau
Merci pour votre retour.
Je vous ajoute cela en PJ ici :

Dans la feuille "ordre d'opération" c'est les items qui apparaissent si dans la feuille SOURCES c'est "VRAI".
Par exemple pour les 3 premiers "utilisation ERP existants, utilisations de structures temporaires et risques de feu sur des structures temporaires", s'ils sont tous les 3 FAUX dans la feuille SOURCES, cela fait un gros "trou" vide. Nous aimerions pouvoir demande à Excel que les lignes 37, 38 et 39 soient "cachés" si A37, A38 et A39 sont vides. Ainsi, cela réduirait l'espace.

Merci encore.
 

Pièces jointes

  • EXCEL DOWNLOAD.xlsx
    19.1 KB · Affichages: 21

job75

XLDnaute Barbatruc
Bonjour afages, djidji59430, le forum,

Voyez le fichier .xlsm joint et cette macro dans le code de la feuille "Ordre opération" (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Calculate()
Dim c As Range
Application.EnableEvents = False 'désactive les évènements
For Each c In UsedRange.Columns(1).Cells
    If TypeName(c.Value) = "Boolean" Then c.EntireRow.Hidden = Not c
Next
Application.EnableEvents = True 'réactive les évènements
End Sub
La macro se déclenche automatiquement quand une formule de la feuille est recalculée.

Cliquez sur une case à cocher dans la 1ère feuille.

Edit : j'ai inversé l'ordre des feuilles.

A+
 

Pièces jointes

  • EXCEL DOWNLOAD(1).xlsm
    28.8 KB · Affichages: 6
Dernière édition:

job75

XLDnaute Barbatruc
Il y a plus simple, plus besoin de formules, affectez aux cases à cocher cette macro :
VB:
Sub Affiche_Masque()
With Range(ActiveSheet.Shapes(Application.Caller).ControlFormat.LinkedCell) 'cellule liée
    Sheets("Ordre opération").Rows(.Row).Hidden = Not .Value
End With
End Sub
Les cellules liées dans la 1ère feuille doivent correspondre aux lignes à masquer dans la 2ème.

Fichier (2).
 

Pièces jointes

  • EXCEL DOWNLOAD(2).xlsm
    29.1 KB · Affichages: 7

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…