Code VBA pour masque les ligne vide et afficher non vide

Bonjour le forum,
j'ai cherché partout dans les forums et j'ai pas trouvé un code vba pour quand je sélectionne la feuil BD3

Masque toutes les lignes de la cellule vide dans la colonne B et affiche les lignes non vides.

J'ai essayé le premier code ci-dessous ne fonctionne pas pour les cellules vides contenant des formules

Et le deuxième code est moi qui l'ai créée et cela ne fonctionne pas non plus

ligne= Range("A" & Rows.Count).End(xlUp).Row
Range("B3:B" & ligne).SpecialCells(xlcellTypeBlanks).EntireRow.Hidden = True
Private Sub worksheet_activate(ByVal Target As Range)
Dim ligne As Range
Dim B As Target

ligne = Sheets("BD3").Range("A" & Rows.Count).End(xlDown).Row
B = ("B3:B" & ligne)
If B = "" Then EntireRow.Hidden = True
Else
EntireRow.Hidden = False
End If

End Sub

Ci-joint un fichier.
D'avance merci beaucoup pour votre aide

24classeur2.xlsm (78.93 Ko)

Bonjour

Si pas de formules en colonne B dans les cellules vides, essayez plutot comme ceci

Private Sub Worksheet_Activate()
Dim ligne as Integer
ligne = Range("A" & Rows.Count).End(xlUp).Row
Range("B3:B" & ligne).EntireRow.Hidden = False
Range("B3:B" & ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

Cordialement

Bonjour,

Peut-être avec boutons

Slts

10masque-affiche.xlsm (80.64 Ko)

Merci pour l'aide, mais comme je l'ai déjà dit, ce code ne fonctionne pas lorsque la cellule contienne une formule qui ne, aussi n'affiche pas les ligne non vide,

merci quand même Mr Dan

bonjour boss_68

merci pour votre aide, mais le code "SpecialCells(xlCellTypeBlanks)" ne cache pas les cellules vide qui contiennes des formules, j’ai oublier de mètres des formules sur le premier fichier, regarde dans le fichier ci-joint la zone jaune

Merci Quand même

17masque-affiche.xlsm (81.24 Ko)

Merci pour l'aide, mais comme je l'ai déjà dit, ce code ne fonctionne pas lorsque la cellule contienne une formule

Dans votre fichier les cellules ne contiennent pas de formules et si vous mettez la formule que vous avez en B8, cela met une valeur 6 dans B9. Idem pour les suivantes.

Avec votre formule, il n'y a pas de cellule vide

En voyant le dernier fichier avec la formule postée

Private Sub Worksheet_Activate()
Dim ligne As Integer
Dim plage As Range, cel As Range

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ligne = Range("A" & Rows.Count).End(xlUp).Row
Cells.EntireRow.Hidden = False
Set plage = Range("B3:B" & ligne)
For Each cel In plage
    If cel.Value = "" Then cel.EntireRow.Hidden = True
Next cel
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Bonjour Dan,

Oui j'ai oublier de mètre des formules , car c'est un fichier test, Mon fichier original contienne des formules

regarde le deuxième fichier

Prenez le code que j'ai posté dans mon post précédent

Edit : j'ai aussi rajouté deux instructions --> Application.ScreenUpdating

Parfais ça fonctionne très bien, Merci Beaucoup Monsieur Dan

Bon Soirée

Bonne soirée

Bonjour,

Une seconde méthode :

Sub MasqueLignes()
Dim R As Range, R2 As Range, ligne As Long
    ligne = Range("A" & Rows.Count).End(xlUp).Row
    If ligne >= 3 Then
        Set R = Range("B3:B" & ligne).Cells.Find("", LookIn:=xlValues)
        If Not R Is Nothing Then
            R.EntireRow.Hidden = True
            Do
                Set R2 = Range("B3:B" & ligne).FindNext(R)
                If Not R2 Is Nothing Then
                    R2.EntireRow.Hidden = True
                End If
            Loop While Not R2 Is Nothing
        End If
    End If
End Sub

A++

Merci franck ça fonctione aussi

Bonne soirée

Rechercher des sujets similaires à "code vba masque ligne vide afficher"