Masquer ligne si oui ou non

Bonjour,

Je ne suis pas une pro du VBA.

J'aurais besoin de votre aide concernant un fichier. Je vous explique le but.

Dans un premier onglet appelé "Choix des risques" j'indique si le risque est présent ou non en sélectionnant dans une liste déroulante "Oui" ou "Non" pour chaque risque. Une fois cette opération faite, j'aimerai que dans un autre onglet appelé "EVRP" que les lignes en lien avec le risque X soit masquées. Sachant que le "Oui" ou le "Non" mis dans l'onglet "Choix des risques" est reporté en colonne A de l'onglet "EVRP"

Ex : Risque chute de plain pied "NON" dans l'onglet "Choix des risques". Dans la colonne A de l'onglet "EVRP" le "NON" est reporté pour chaque ligne du risque. Alors aucune ligne en lien avec ce risque ne doit apparaître dans l'onglet EVRP.

Voici ce que j'ai fait, mais ça ne veut pas masquer les lignes ::

' *************************************************************

' MàJ des onglets

' *************************************************************

Erreur = False

Sheets("EVRP").Select

Columns("A:A").Select

Columns("L:L").Select

Lig = 1

Col = 1

While Cells(Lig, Col) <> ""

Zone = Lig & ":" & Lig

If Cells(Lig, Col) = "Oui" Then

Rows(Zone).Select

Selection.EntireRow.Hidden = False

Else

If Cells(Lig, Col) = "Non" Then

Rows(Zone).Select

Selection.EntireRow.Hidden = True

Else

If Cells(Lig, Col) = "Toujours" Or Cells(Lig, Col) = "Entête" Then

Rows(Zone).Select

Selection.EntireRow.Hidden = False

End If

End If

End If

Lig = Lig + 1

Wend

If Erreur Then

MsgBox ("Lors de la mise à jour de l'onglet EVRP des erreurs ont été identifiées.")

Else

MsgBox ("L'onglet EVRP a été mis à jour. Vous pouvez commencer le travail d'Etude d'Impact.")

End If

End If

Application.ScreenUpdating = True

End Sub

Je ne peux pas vous envoyer le fichier car il contient des informations privés.

En vous remerciant de votre aide.

Cordialement,

Bonjour,

Je n'ai pas compris pour vous sélectionnez la colonne L
Les oui et non sont en colonne A je suppose. Si oui essayez avec ce code

Sub test()
Dim i As Integer
With Sheets("EVRP")

    For i = .Range("A" & .Rows.Count).End(xlUp).Row To 1 Step -1
        Select Case .Range("A" & i).Value
            Case Is = "Oui": .Rows(i).EntireRow.Hidden = False
            Case Is = "Non": .Rows(i).EntireRow.Hidden = True
            Case Is = "Toujours", "Entête": .Rows(i).EntireRow.Hidden = False
        End Select
    Next i
MsgBox ("L'onglet EVRP a été mis à jour. Vous pouvez commencer le travail d'Etude d'Impact.")
End With
End sub

Autre question, que cherchez vous avec l'instruction Erreur

Cordialement

Bonjour,

J'ai sélectionné la colonne L car je voulais faire référence à une case qui contient le mot Problème si le programme ne fonctionnait pas.

Idem pour le message "Erreur", je voulais que l'utilisateur soit averti s'il y a un problème avec le fichier.

Merci pour ton aide, mais ça ne fonctionne pas :/, il me laisse toujours les lignes avec le "Non" devant :

image

Bonjour

Dans la vue où vous avez mis la macro que j'ai proposée, mettez les Non et Oui en majuscules car dans votre demande seule la première lettre est en majuscule.

NB : Merci d'utiliser les balises de code (icône dans la barre de menu --> </>) lorsque vous postez un code. Cela permet notamment de reprendre votre code pour effectues des tests ou d'éviter de le recopier lorsqu'il n'y a pas de fichier.

Bonjour,

Merci !!!!! Cétait en effet tout simplement ça !

C'est noté merci pour l'information.

A+

LSO

Ok.

Si vous voulez éventuellement que le code fonctionne au cas où vous auriez majuscule ou pas, mettez cette instruction juste au dessus de Sub Test

Option Compare Text

Cordialement

Rechercher des sujets similaires à "masquer ligne"