Masquer des lignes SI

Résolu
barondentraide -  
 barondentraide -
Bonjour à tous

j'aimerais masquer les lignes quand certaines cellules contiennent :RAS
dans une plage Exemple : E120 à E130

Sachant que le contenu des cellules est en fait
=SI(Grille_car!V7=VRAI;"CONSTAT";"RAS")

j'ai regardé les multiples posts qui parle du sujet mais sans succés
Merci d'avance

6 réponses

Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

entre la ligne 120 et 130 cinquième colonne soit colonne E

Sub Masque_Ligne()
For i = 130 To 120 Step -1
If Cells(i, 5) = "RAS" Then Rows(i).Hidden = True
Next
End Sub
1
barondentraide
 
Le problême c'est que lorsque je l'execute elle masque les lignes contenant RAS mais ensuite si je décoche la case à cocher et que je relance la macro elle ne raffiche plus les lignes concernées.

En fait j'aimerais afficher masquer les lignes automatiquement selon la condition (voir message précédent)
Merci de votre soutien et bon dimanche
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

utilise plutôt les CheckBox de la barre activex la gestion par VBA est plus simple
pour masquer ou afficher par exemple la ligne 2 sur la même feuille

Private Sub CheckBox1_Click()
If CheckBox1 = True Then Rows("2:2").Hidden = True
If CheckBox1 = False Then Rows("2:2").Hidden = False
End Sub

pour masquer ou afficher la ligne 2 sur la feuille 2 depuis la feuille 1

Private Sub CheckBox1_Click()
If CheckBox1 = True Then Sheets("Feuil2").Rows("2:2").EntireRow.Hidden = True
If CheckBox1 = False Then Sheets("Feuil2").Rows("2:2").EntireRow.Hidden = False
End Sub
1
barondentraide
 
Rebonjour
je voudrais bien essayer ce code :

Private Sub CheckBox1_Click()
If CheckBox1 = True Then Sheets("Feuil2").Rows("2:2").EntireRow.Hidden = True
If CheckBox1 = False Then Sheets("Feuil2").Rows("2:2").EntireRow.Hidden = False
End Sub

je le place ou

Merci j'ai trouvé
sujet résolu
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,
tu peux écourter un peu le code, en remplaçant Rows("2:2") par Rows(2)
("2:2") équivaut à toute la ligne peut être utilisé pour plusieurs lignes exemple de 2 à 10 dans ce cas on saisi ("2:10"), Rows(2) est le numéro de la ligne

If CheckBox1 = False Then Rows(2).Hidden = False
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
barondentraide
 
Oui merci de la précision j'avais tenté une modif
If [A1] = False Then Sheets("Feuil2").Rows("8:12").EntireRow.Hidden = True
et elle a fonctionné en masquant les lignes 8 à 12 donc j'avais compris .

PS:j'essaye à progresser donc je mélange des bouts de code pour voir le résultat et celui que je crois etre le mieux dans mon cas.
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

tu peux simplifier et éviter EntireRow

If [A1] = False Then Sheets("Feuil2").Rows("8:12").Hidden=True
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
barondentraide
 
Bon merci cela fonctionne trés bien en ajoutant la fonction afficher

Sub Masque_Ligne()
For i = 130 To 120 Step -1
If Cells(i, 5) = "RAS" Then Rows(i).Hidden = True
Next
End Sub
Sub Affiche_Ligne()
For i = 130 To 120 Step -1
If Cells(i, 5) <> "RAS" Then Rows(i).Hidden = False
Next
End Sub

maintenant j'aimerais que les deux macros afficher masquer les lignes sur la Feuille2 se lancent automatiquement.

lorsque sur la feuille 1 l'état des cases à cocher change d'état
VRAI = lance la macro afficher la ligne
FAUX=lance la macro masquer la ligne
Ces cellules liées aux case à cocher se trouve Feuille1 Cellule V7 àV17

MERCI
0
barondentraide
 
merci beaucoup

tu m'aides vachement à progresser ,c'est trés sympa de ta part.
0