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

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    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
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    tu peux simplifier et éviter EntireRow

    If [A1] = False Then Sheets("Feuil2").Rows("8:12").Hidden=True
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. barondentraide
     
    merci beaucoup

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