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

10 réponses

1 2
Avatar
Daniel.C
Bonsoir.
Essaie :

Range("U:U").AutoFilter
Range("U:U").AutoFilter Field:=1, Criteria1:="="
Set plage = [_filterdatabase].Offset(1)
Set plage = plage.Resize(plage.Count -
1).SpecialCells(xlCellTypeVisible)
plage.EntireRow.Delete
Range("U:U").AutoFilter

Inconvénient, la cellule U1 n'est pas traitée. Le cas échéant, insérer
une cellule en début de procédure et la supprimer à la fin.

Daniel

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
Avatar
Daniel.C
Ou plutôt, pour masquer :

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

Daniel

Bonsoir.
Essaie :

Range("U:U").AutoFilter
Range("U:U").AutoFilter Field:=1, Criteria1:="="
Set plage = [_filterdatabase].Offset(1)
Set plage = plage.Resize(plage.Count - 1).SpecialCells(xlCellTypeVisible)
plage.EntireRow.Delete
Range("U:U").AutoFilter

Inconvénient, la cellule U1 n'est pas traitée. Le cas échéant, insérer une
cellule en début de procédure et la supprimer à la fin.

Daniel

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
Avatar
Ylias
Merci Daniel,
j'essai et t'informe
Cordialement
Avatar
Ylias
On 5 mar, 09:05, Ylias wrote:
Merci Daniel,
j'essai et t'informe
Cordialement



Salut Daniel

A l'exuction du code:
Range("U:U").AutoFilter
Range("U:U").AutoFilter Field:=1, Criteria1:="="
Set plage = [_filterdatabase].Offset(1)
Set plage = plage.Resize(plage.Count -
1).SpecialCells(xlCellTypeVisible)
plage.EntireRow.Hidden = True

Toutes les lignes ont été masquées!
Avatar
Daniel.C
Bonjour.
Poste un classeur exemple sur www.cjoint.com, ça fonctionne dans mon
test.
Daniel

On 5 mar, 09:05, Ylias wrote:
Merci Daniel,
j'essai et t'informe
Cordialement



Salut Daniel

A l'exuction du code:
Range("U:U").AutoFilter
Range("U:U").AutoFilter Field:=1, Criteria1:="="
Set plage = [_filterdatabase].Offset(1)
Set plage = plage.Resize(plage.Count -
1).SpecialCells(xlCellTypeVisible)
plage.EntireRow.Hidden = True

Toutes les lignes ont été masquées!
Avatar
Daniel.C
Je n'ai peut-être pas compris ta question. Veux-tu masquer uniquement
les cellules contenant une formule renvoyant "" et afficher les
cellules vraiment vides ?
Daniel

Bonjour.
Poste un classeur exemple sur www.cjoint.com, ça fonctionne dans mon test.
Daniel

On 5 mar, 09:05, Ylias wrote:
Merci Daniel,
j'essai et t'informe
Cordialement



Salut Daniel

A l'exuction du code:
Range("U:U").AutoFilter
Range("U:U").AutoFilter Field:=1, Criteria1:="="
Set plage = [_filterdatabase].Offset(1)
Set plage = plage.Resize(plage.Count -
1).SpecialCells(xlCellTypeVisible)
plage.EntireRow.Hidden = True

Toutes les lignes ont été masquées!
Avatar
Ylias
On 5 mar, 11:35, Daniel.C wrote:
Je n'ai peut-être pas compris ta question. Veux-tu masquer uniquement
les cellules contenant une formule renvoyant "" et afficher les
cellules vraiment vides ?
Daniel



> Bonjour.
> Poste un classeur exemple surwww.cjoint.com, ça fonctionne dans mon t est.
> Daniel

>> On 5 mar, 09:05, Ylias wrote:
>>> Merci Daniel,
>>> j'essai et t'informe
>>> Cordialement

>> Salut Daniel

>> A l'exuction du code:
>> Range("U:U").AutoFilter
>> Range("U:U").AutoFilter Field:=1, Criteria1:="="
>> Set plage = [_filterdatabase].Offset(1)
>> Set plage = plage.Resize(plage.Count -
>> 1).SpecialCells(xlCellTypeVisible)
>> plage.EntireRow.Hidden = True

>> Toutes les lignes ont été masquées!


Salut daniel,
Je t'ai fais parvenir une copie de mon fichier;
Je voudrais masquer toutes les ligne ( dans l'exemple envoyé) qui ne
possèdent pas de valeur dans la colonne I.
Merci pour l'encadrement
Avatar
Daniel.C
Pas vu de fichier ni en post ni dans ma messagerie ?
Poste-le sur www.cijoint.fr en effaçant tout ce qui est sensible. S'il
dépasse les 8 Mo, mon adresse est , en enlevant
les "ZZZ".
Daniel

On 5 mar, 11:35, Daniel.C wrote:
Je n'ai peut-être pas compris ta question. Veux-tu masquer uniquement
les cellules contenant une formule renvoyant "" et afficher les
cellules vraiment vides ?
Daniel



Bonjour.
Poste un classeur exemple surwww.cjoint.com, ça fonctionne dans mon test.
Daniel



On 5 mar, 09:05, Ylias wrote:
Merci Daniel,
j'essai et t'informe
Cordialement







Salut Daniel





A l'exuction du code:
Range("U:U").AutoFilter
Range("U:U").AutoFilter Field:=1, Criteria1:="="
Set plage = [_filterdatabase].Offset(1)
Set plage = plage.Resize(plage.Count -
1).SpecialCells(xlCellTypeVisible)
plage.EntireRow.Hidden = True





Toutes les lignes ont été masquées!






Salut daniel,
Je t'ai fais parvenir une copie de mon fichier;
Je voudrais masquer toutes les ligne ( dans l'exemple envoyé) qui ne
possèdent pas de valeur dans la colonne I.
Merci pour l'encadrement
Avatar
Hervé
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 de
news:
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
Avatar
Ylias
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:1ac1de43-490



> 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