Masquer si

Bonjour le forum,

Je cherche à faire une macro qui masque les lignes si aucun champs n'est rempli et en affiche d autres.

Voir fichier test1.

Merci de votre aide.

14test-1.xlsx (8.77 Ko)

Bonjour BenBen et

Si toutes les lignes sont vides, tout masquer sauf la 3 à 5.

De quelles lignes parles-tu ?

A l'état initial, on peut supposer que le tableau n'est pas renseigné. Les lignes étant vides elles sont donc masquées à l'exception des 3 et 5. Comment feras-tu pour renseigner ton tableau ?

A+

Bonsoir Frangy et merci pour ton accueil,

Le tableau en Test1 comporte en fait plusieurs dixaine de lignes et est un tableau en partage à tout un service. Je l' ai réduit par mesure de simplicité.

De quelles lignes parles-tu ? -> Des lignes 16 à 20.

J' y ai inclus les résultats que je veux aprés clik sur le bouton macro.

Merci de ton aide.

11test-1.xlsx (10.61 Ko)

Bonsoir,

voir fichier joint

Bonsoir Game over

Dans la macro que tu as faites, lorsque j appuie sur masquer, il masque bien les lignes 3 à 5 lorsque le tableau à des champs de rempli mais ne masque pas les lignes 18 à 20 ( car elles sont vide).

Et avec le bouton afficher, il faudrait qu' il masque les lignes 3 à 5. Ces lignes doivent etre affiché Uniquement si les lignes du tableau ( 16 à 20 sont vides)

Est ce que tu peux m expliquer les fonctions de la macro, notament :

"If Derlig = 14 Then " - > pourquoi 14 ?

MErci de ton aide.

Re,

teste et dis moi si ça te convient comme ça

Re

C'est exactement ca. Merci.

Peux tu m' expliquer la macro ( ligne par ligne) pour que j essai de comprendre.

à Frangy et Game over pour leur aide.

Bonne soirée.

Sub Hide_Rows()

Application.ScreenUpdating = False ' omet la fonction SceenUpdate pour accélérer l'exécution de la macro

Dim Derlig As Long
Derlig = Range("A" & Rows.Count).End(xlUp).Row 'détermine la dernière ligne non vide de la colonne A

    If Derlig = 14 Then ' si la dernière ligne non vide de A est la ligne 14 (en fait la cellule A14 NOM)
        Rows("8:20").Hidden = True 'cacher les lignes 8 à 20
        Rows("3:5").Hidden = False 'afficher les lignes 3 à 5
    Else 'sinon
        Rows("3:5").Hidden = True 'cacher les lignes 3 à 5
        Range("A16").Select 'sélectionner la cellule A16
            If IsEmpty(ActiveCell.Offset(1, 0)) Then 'si la cellule juste sous A16 est vide
                Rows("17:20").Hidden = True 'alors masquer les lignes 17 à 20
            Else 'sinon (en fait, s'il y a plus d'une intervention)
                Rows(ActiveCell.End(xlDown).Offset(1, 0).Row & ":20").Hidden = True ' cacher les lignes _
                allant de la première cellule vide de la colonne A jusqu'à la ligne 20
            End If
    End If

Application.ScreenUpdating = True 'relance la fonction Screen Update
End Sub

Sub Show_Rows()

Application.ScreenUpdating = False

Dim Derniere As Long
Derniere = Range("A" & Rows.Count).End(xlUp).Row ' détermine la dernière ligne non vide de la colonne A

If Derniere <> 14 Then 'si la dernière ligne est la ligne 14 (donc aucune intervention)
    Cells.Rows.Hidden = False ' affiche toutes les lignes de la feuille
    Rows("3:5").Hidden = True 'masque les lignes 3 à 5
End If
Application.ScreenUpdating = True
End Sub

voilà, j'espère que c'est plus clair

Rechercher des sujets similaires à "masquer"