Masquer automatiquement des lignes en fonction d'une celulle

Résolu/Fermé
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 4 févr. 2016 à 16:53
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 6 févr. 2016 à 22:21
Bonjour,

J'ai un travail à faire et je voudrais demander votre aide pour le sujet suivant :

Je voudrais masquer automatiquement les lignes en fonction de la celulle G18 comme suite :

Si G18=0 ou G18 ="" ---> masquer les lignes de 31 jusqu'à 64;
Si G18=1 ="" ---> masquer les lignes de 37 jusqu'à 64;
Si G18=2 ="" ---> masquer les lignes de 39 jusqu'à 64;
Si G18=3 ="" ---> masquer les lignes de 41 jusqu'à 64;
Si G18=4 ="" ---> masquer les lignes de 43 jusqu'à 64;
Si G18=5 ="" ---> masquer les lignes de 45 jusqu'à 64;
Si G18=6 ="" ---> masquer les lignes de 47 jusqu'à 64;
Si G18=7 ="" ---> masquer les lignes de 49 jusqu'à 64;
Si G18=8 ="" ---> masquer les lignes de 51 jusqu'à 64;
Si G18=9 ="" ---> masquer les lignes de 53 jusqu'à 64;
Si G18=10 ="" ---> masquer les lignes de 55 jusqu'à 64;
Si G18=11 ="" ---> masquer les lignes de 57 jusqu'à 64;
Si G18=12 ="" ---> masquer les lignes de 59 jusqu'à 64;
Si G18=13 ="" ---> masquer les lignes de 60 jusqu'à 64;
Si G18=14 ="" ---> masquer les lignes de 62 jusqu'à 64;
Si G18>=15 ="" ---> ne rien masquer.

Aidez-moi s'il vous plaît

Merci d'avance

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
4 févr. 2016 à 18:10
Bonjour,

A mettre dans la feuille concernée:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("G18")) Is Nothing Then
Select Case Target.Value
Case Is = ""
 Rows("30:65").EntireRow.Hidden = False 'affiché
 Rows("31:64").EntireRow.Hidden = True 'masqué
Case Is = 0
 Rows("30:65").EntireRow.Hidden = False
 Rows("31:64").EntireRow.Hidden = True
 Case Is = 1
 Rows("30:65").EntireRow.Hidden = False
 Rows("37:64").EntireRow.Hidden = True
  Case Is = 2
 Rows("30:65").EntireRow.Hidden = False
 Rows("39:64").EntireRow.Hidden = True
 'etc
 '********************
 '*************************
 'tu continues à remplir les manquants suivant les exemples
 
   Case Is = 14
 Rows("30:65").EntireRow.Hidden = False
 Rows("62:64").EntireRow.Hidden = True
    Case Is >= 15
 Rows("30:65").EntireRow.Hidden = False 'affiché
End Select
End If
End Sub



0
kikou93 Messages postés 416 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
Modifié par kikou93 le 4/02/2016 à 18:55
Désolé de te déranger encore mais ça n'a pas marché et je ne sais pas pourquoi, mon travail est loin d'être terminé mais voici un échantillon (peux-tu le modifier directement s'il te plaît) :

http://www.cjoint.com/c/FBer1HDKE8H

La valeur de G18 et dans la cellule M29
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
4 févr. 2016 à 19:57
Désolé de te déranger encore mais ça n'a pas marché et je ne sais pas pourquoi,

Voilà l'exemple:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("G18")) Is Nothing Then


et voilà ce que tu as mis:

Private Sub Worksheet_Activate()
If Not Application.Intersect(Target, Range("G18")) Is Nothing Then


et il faut rectifier la cellule G18 par M29
0