Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Masquer cellule vide contenant une formule

11 réponses
Avatar
Ylias
Salut
[U:U].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
cette formule masque toutes les cellules vides de la colonne U.
Comment faire quant il s'agit d'une formule qui ne donne pas de
resultat car pas de donnes.
Merci

1 réponse

1 2
Avatar
Daniel.C
Bonjour Ylias.

A la relecture, je viens de voir que j'avais laissé "Plage.Select" qui
ne sert à rien (juste pour les tests) et pourrait même générer une
erreur si tu ne travaillais pas sur la feuille active. Enlève-le STP.

Daniel

On 5 mar, 19:56, Hervé wrote:
Bonsoir Ylias,

Peut être avec ceci ?

Sub Cacher()

    Dim Plage As Range
    Dim Cel As Range

    'défini la plage à balayer
    Set Plage = Range([U1], [U65536].End(xlUp))

    'si la cellule contient une formule
    'et que le résultat de celle-ci est
    'égal à zéro, masque la ligne entière
    For Each Cel In Plage
        If Cel.HasFormula And Cel.Value = 0 Then
            Cel.EntireRow.Hidden = True
        End If
    Next Cel

    Set Cel = Nothing
    Set Plage = Nothing

End Sub

Hervé.

"Ylias" a écrit dans le message
denews:



Salut
[U:U].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
cette formule masque toutes les cellules vides de la colonne U.
Comment faire quant il s'agit d'une formule qui ne donne pas de
resultat car pas de donnes.
Merci





Merci à Daniel qui a donné satisfaction à ma préoccupation;
je mets en ligne les modifications apportées pour que ça marche:
' faire attention à la notion de vide "-" et "0" masqué
'dans l'exemple traité, le "U" remplacé par "I"

Sub test()
Range("I:I").AutoFilter
Range("I:I").AutoFilter Field:=1, Criteria1:="="
Set plage = [_filterdatabase].Offset(1)
Set plage = plage.Resize(plage.Count -
1).SpecialCells(xlCellTypeVisible)
plage.Select
Range("I:I").AutoFilter
plage.EntireRow.Hidden = True
End Sub

Merci également à tous ceux qui ont apporté leur contribution
Cordialement
1 2