Masquer lignes si cellules contenant formules = 0 ou vides

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
B
Ben-j7474
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 3 mai 2016
Version d'Excel : 2013 FR

Message par Ben-j7474 » 3 mai 2016, 16:32

Bonjour,

Je suis nouveau sur ce forum, que je parcoure depuis quelque temps. N'ayant pas trouvé la réponse à ma question dans d'autres sujets, je pose ma question ici.

Dans mon tableau, la colonne A contient du texte et les autres colonnes (B à AK) contiennent soit des formules soit des chiffres.

Je souhaite que : si toutes les cellules de la ligne contenant des formules avec comme résultat = 0 ou cellules vides, la ligne soit masquée. Si une seule des cellules de la ligne contient un résultat supérieur à 0 ou un chiffre, que la ligne ne soit pas masquée.

J'ai utilisé ce code mais ça ne fonctionne pas :

Sub masquer_ligne_vide_TEST2()
Dim Cel As Range
For Each Cel In Range("B6:AK13,B16:AK19")
If Cel.Value <> "" And Cel.Value = 0 Then
Cel.EntireRow.Hidden = True
End If
Next
End Sub

Merci d'avance pour votre aide.
Avatar du membre
ThauThème
Passionné d'Excel
Passionné d'Excel
Messages : 4'047
Appréciations reçues : 212
Inscrit le : 19 octobre 2014
Version d'Excel : 2010 FR

Message par ThauThème » 3 mai 2016, 16:42

Bonjour Ben, bonjour le forum,

Peut-être comme ça :
Sub masquer_ligne_vide_TEST2()
Dim Cel As Range
Dim I as byte

For I = 6 To 13
    For Each Cel In Range(Cells(I, 2), Cells(I, 63))
        If Cel.Value <> "" And Cel.Value <> 0 Then GoTo suite1
    Next Cel
    Cel.EntireRow.Hidden = True
suite1:
Next I
For I = 16 To 19
    For Each Cel In Range(Cells(I, 2), Cells(I, 63))
        If Cel.Value <> "" And Cel.Value <> 0 Then GoTo suite2
    Next Cel
    Cel.EntireRow.Hidden = True
suite2:
Next I
End Sub
À plus,

ThauTheme


Je suis Charlie
VBA m'éclate, les formules m'ennuient ! Je n'y peux rien c'est comme ça...
B
Ben-j7474
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 3 mai 2016
Version d'Excel : 2013 FR

Message par Ben-j7474 » 3 mai 2016, 16:47

Bonjour ThauThème,

Merci pour ton aide, mais ça ne fonctionne pas. Ca me renvoie une erreur d’exécution 91 "Variable objet ou variable de bloc With non définie".
Avatar du membre
ThauThème
Passionné d'Excel
Passionné d'Excel
Messages : 4'047
Appréciations reçues : 212
Inscrit le : 19 octobre 2014
Version d'Excel : 2010 FR

Message par ThauThème » 3 mai 2016, 17:10

Re,

Ça m'apprendra à pas tester (quelle suffisance !). Le code modifié :
Sub masquer_ligne_vide_TEST2()
Dim Cel As Range
Dim I As Byte

For I = 6 To 13
    For Each Cel In Range(Cells(I, 2), Cells(I, 63))
        If Cel.Value <> "" And Cel.Value <> 0 Then GoTo suite1
    Next Cel
    Rows(I).Hidden = True
suite1:
Next I
For I = 16 To 19
    For Each Cel In Range(Cells(I, 2), Cells(I, 63))
        If Cel.Value <> "" And Cel.Value <> 0 Then GoTo suite2
    Next Cel
    Rows(I).Hidden = True
suite2:
Next I
End Sub
À plus,

ThauTheme


Je suis Charlie
VBA m'éclate, les formules m'ennuient ! Je n'y peux rien c'est comme ça...
B
Ben-j7474
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 3 mai 2016
Version d'Excel : 2013 FR

Message par Ben-j7474 » 3 mai 2016, 17:15

Génial! Ca fonctionne parfaitement! :wink:

Merci infiniment du coup de main! Ca faisait 3 heures que je séchais sur ce problème... :D
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message