(RESOLU)Simplifier un code (afficher masquer les lignes)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chaelie2015

XLDnaute Accro
BONJOUR FORUM,
Je cherche un code qui soit plus simple a celui-ci
VB:
If Not Intersect(Rows(Target.Row), [M1]) Is Nothing Then
      Application.ScreenUpdating = False
      n = CInt([M1])
      Rows("4:13").Hidden = True
           
      Select Case n
        Case 1
            Rows("4:4").Hidden = False
        Case 2
            Rows("4:5").Hidden = False
        Case 3
            Rows("4:6").Hidden = False
        Case 4
            Rows("4:7").Hidden = False
        Case 5
            Rows("4:8").Hidden = False
        Case 6
            Rows("4:9").Hidden = False
        Case 7
            Rows("4:10").Hidden = False
        Case 8
            Rows("4:11").Hidden = False
        Case 9
            Rows("4:12").Hidden = False
        Case 10
            Rows("4:13").Hidden = False
      End Select
 End If
afficher les lignes de la ligne 4 a la ligne 13 selon le chiffre saisi dans la cellule M1
Salutation
 
Dernière édition:
Re : Simplifier un code (afficher masquer les lignes)

Bonjour chaelie2015

Tout simplement
Code:
  If Not Intersect(Rows(Target.Row), [M1]) Is Nothing Then
    Application.ScreenUpdating = False
    n = CInt([M1])
    Rows("4:13").Hidden = True
    Rows("4:" & 3 + n).Hidden = False
  End If

A+
 
Re : Simplifier un code (afficher masquer les lignes)

Bonjour chaelie2015, BrunoM45

ou bien

Code:
If Not Intersect(Rows(Target.Row), [M1]) Is Nothing Then
      Application.ScreenUpdating = False
      n = CInt([M1])
      Rows(4 + n & ":13").Hidden = True
End If

A+

Edit: Ah ben non ! ça ne marche qu'une fois et encore, pas pour toutes les valeurs.
 
Dernière édition:
Re : Simplifier un code (afficher masquer les lignes)

Bonjour bruno, paf
merci pour vos réponses , c'est exactement ce que je cherchais, je souhaite encore développer ce code
avec d'autre lignes c a d
Code:
If Not Intersect(Rows(Target.Row), [M1]) Is Nothing Then
    Application.ScreenUpdating = False
    n = CInt([M1])
    Rows("4:13").Hidden = True
    Rows("4:" & 3 + n).Hidden = False
    End If

If Not Intersect(Rows(Target.Row), [V4]) Is Nothing Then    
Application.ScreenUpdating = False
    n1 = CInt([V4])
    Rows("16:77").Hidden = True
    Rows("16:" & 15 + n1).Hidden = False
End If
MAIS ça n'a pas marché
SALUTATIONS
 
Re : Simplifier un code (afficher masquer les lignes)

Re
j'explique mon souci
le 1er code :
j'affiche nombre de ligne ( de 4-13) selon le chiffre saisié dans la cellule M1 ===> ça fonctionne
2eme code :
je souhaite concatener au code précédent ce code
j'affiche nombre de ligne (de 16 a 77) selon le chiffre saisié dans la cellule V4 ====> ça n'a pas fonctionné pour les deux code
SALUTATIONS
 
Re : Simplifier un code (afficher masquer les lignes)

Re,


Ca ne peut pas être le même principe puisque de 4 à 13 ça fait 10 possibilités
et de 16 à 77 ça en fait 62 !?

Re
Désolé de ne pas etre tres clair, je suis entrain de vous explique mon sousci pour etre plus clair, mais si vous permettez selon votre réponse du poste 2, je n'arrive pas a comprendre ou est le lien entre le nombre de possibilité?
MERCI PAR AVANCE
 
Re : Simplifier un code (afficher masquer les lignes)

Bonjour forum, Bruno
Je re explique mon souci avec un fichier rattaché
Je souhaite afficher ou masquer les lignes selon le nombre saisié dans la cellule
si je saisi dans la cellule M1 un chiffre ( exemple) 4 j’aurai les ligne de A4 a A7 affichées et les autres de A8 a A13 masqués et si je saisi mnt un chiffre dans la cellule V4 un chiffre (exemple) 5 j’aurais les lignes de A16 au A20 affichés et les autre masqués
Salutations
 

Pièces jointes

Re : Simplifier un code (afficher masquer les lignes)

Re
ci joint le code proposé
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n
Dim n1
 

 If Not Intersect(Rows(Target.Row), [M1]) Is Nothing Then
    Application.ScreenUpdating = False
    n = CInt([M1])
    Rows("4:13").Hidden = True
    Rows("3:" & 3 + n).Hidden = False
  Exit Sub
 End If
 
 

 If Not Intersect(Rows(Target.Row), [V4]) Is Nothing Then
    Application.ScreenUpdating = False
    n1 = CInt([V4])
   Rows("16:77").Hidden = True
    Rows("15:" & 15 + n1).Hidden = False
 Exit Sub
 End If
 
 
 
 
 End Sub
Mais ça n'a pas marché ....
Salutations
 
Dernière édition:
Re : Simplifier un code (afficher masquer les lignes)

salut
à essayer (pas d'erreur, quelque soit le type saisi dans les 2 cellules)
VB:
Private Sub Worksheet_Change(ByVal R As Range)
  Application.EnableEvents = 0
  If R.Address = "$M$1" Then
    If Not IsNumeric(R) Or R = 0 Then
      R = "": Rows("4:13").Hidden = 0
    Else
      Rows("4:13").Hidden = 1: Rows("3:" & 3 + Int(R)).Hidden = 0
    End If
  End If
  If R.Address = "$V$4" Then
    If Not IsNumeric(R) Or R = 0 Then
      R = "": Rows("16:77").Hidden = 0
    Else
      Rows("16:77").Hidden = 1: Rows("15:" & 15 + Int(R)).Hidden = 0
    End If
  End If
  Application.EnableEvents = 1
End Sub
 

Pièces jointes

Re : Simplifier un code (afficher masquer les lignes)

Bonjour SI, forum
Merci c’est excellent, mais je souhaite si les deux cellules (M1 et V4) sont vides masquer toutes les lignes
et dans le cas les deux cellules non vide alors afficher seulement les lignes saisie dans ces deux cellules.
NB : la cellule V4 est une formule.

Salutations
 

Pièces jointes

Re : Simplifier un code (afficher masquer les lignes)

Bonjour si …., forum
Merci pour la réponse, c’est nickel, exactement ce que j’ai souhaité, donc je peux généraliser ton code avec plusieurs tableaux ;la dernier question comment faire pour commencer l’affichage quand je saisi 1 l’affichage du tableau débute de la 3 ligne
J’ai pu faire ça

VB:
'TAB1
  If Not Intersect(R, [C4:I4]) Is Nothing Then
    If [V4] = "" Then
      Rows("16:77").Hidden = 1
    Else
      Rows("16:77").Hidden = 1: Rows("16:" & 16 + Int([V4])).Hidden = 0  '<===== ça mais il affiche que deux ligne si je saise1???
    End If
  End If

mais il débute de 2eme ligne ???
MERCI
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
165
  • Question Question
Power Query Power Query
Réponses
26
Affichages
575
Réponses
0
Affichages
566
Retour