Cliquer sur une cellule pour afficher/masquer des lignes

flaka36 -  
 flaka36 -
Bonjour,

je vous explique la situation:
je souhaiterai trouver un moyen pour afficher et masquer certaines lignes en cliquant uniquement sur une cellule qui se trouve juste au dessus.
Exemple:
Celluleàcliquer
B2
B3
B4
B5
donc je veux pouvoir masquer ou afficher les cellules(ou lignes) de B2 à B5 juste en cliquant sur "celluleàcliquer"
je connais la méthode pour masquer/ afficher les cellules avec les + et - mais dans ce cas elle ne me convient pas...
Est ce que quelqu'un aurait la solution? je pense qu'il faut travailler dans VBA mais je suis débutant dans ce domaine!

Merci d'avance pour vos réponses
A voir également:

5 réponses

g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Bonjour,

Cliquer sur A1 pour masquer et sur B1 pour afficher.

Code à copier dans le module de feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Then
Rows("2:5").Select
Selection.EntireRow.Hidden = True
End If
If Target.Address = "$B$1" Then
Rows("1:6").Select
Selection.EntireRow.Hidden = False
Range("C1").Select
End If
End Sub

Cordialement.
1
g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Bonjour,

Code à copier dans le module de feuille (effacer celui existant):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
MasqueRows
End If
End Sub

Code à copier dans un module standard:

Sub MasqueRows()
Rows("2:5").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else: Selection.EntireRow.Hidden = False
Range("C1").Select
End If
End Sub

Cordialement.
1
flaka36
 
Impec!! ca marche parfaitement!
Maintenant la suite!!^^

Celluleàcliquer
B2
B3
B4
B5
Celluleàcliquer2
B7
B8
B9
B10
avec ton code on peut afficher et masquer de B2 à B5 en cliquant sur "Celluleàcliquer"
Maintenant j'aimerai aussi pouvoir masquer/afficher les cellules de B7 à B10 en clquant sur "Celluleàcliquer2"
Tout est sur la même colonne.
Merci pour ton aide
0
g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Tu fais une simple adaptation des codes existants et tu peux continuer avec le même principe:

Module de feuille:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
MasqueRows
ElseIf Target.Address = "$A$6" Then
MasqueRows_2
End If
End Sub

Module standard:

Sub MasqueRows()
Rows("2:5").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else: Selection.EntireRow.Hidden = False
Range("C1").Select
End If
End Sub
Sub MasqueRows_2()
Rows("7:10").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else: Selection.EntireRow.Hidden = False
Range("C1").Select
End If
End Sub
1
flaka36
 
Merci chef! comme depuis le début, tout ce que tu me dis ca marche au top! je suis vraiment novice heureusement que tu es là!
Maintenant regarde:

Celluleàcliquer
B2
B21
B22
B23
B3
B31
B32
B33
B4
B5

j'aimerai que quand tu cliques sur "Celluleàcliquer" il y ait uniquement B2 B3 B4..qui apparaissent et ensuite seulement en cliquant sur B2, il y ait B21 B22.. qui s'affichent.
Avec les codes précédents, quand je clique "celluleà cliquer" tout apparait...
Y'a t'il un moyen pour afficher uniquement les cellules qui nous interessent?
0
g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Je ne peux pas faire ce que tu souhaites, je ne sais même pas si c'est possible.
Désolé.
0
flaka36
 
Pas grave! merci quand même tu m'as beaucoup aidé!
0
flaka36
 
Merci pour ta réponse.
Malheureusement un message d'erreur apparait: "erreur de compilation : end sub attendu" =(
tu saurais d'ou ca vient?
0
g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Tu as dû mal recopier le code.
Ne manque t-il pas End Sub en dernière ligne ?
0
flaka36
 
nop! je maitrise le copier/coller ^^
après j'ai modifié les lignes au lieu de mettre "2:5" j'ai mis "2:111" et pareil pour l'autre j'ai mis "2:111"...
peut être que ca vient de ca, je sais pas
0
flaka36
 
Sub Macro5()
'
' Macro5 Macro
'
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Address = "$A$1" Then
Rows("2:111").Select
Selection.EntireRow.Hidden = True
End If
If Target.Address = "$B$1" Then
Rows("1:112").Select
Selection.EntireRow.Hidden = False
Range("C1").Select
End If
End Sub

ca ressemble à ca!
0
g Messages postés 1265 Date d'inscription   Statut Membre Dernière intervention   577
 
Efface ce qui est au dessus de
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

c'est Sub Macro5() qui gêne.
0
flaka36
 
Du coup si je supprime Macro5, j'ai plus de nom de macro et quand je lance la macro, il me demande d'en créer 1...
0

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

Posez votre question
flaka36
 
Impec! ca marche parfaitement!
Maintenant la suite!!^^

Celluleàcliquer
B2
B3
B4
B5
Celluleàcliquer2
B7
B8
B9
B10
avec ton code on peut afficher et masquer de B2 à B5 en cliquant sur "Celluleàcliquer"
Maintenant j'aimerai aussi pouvoir masquer/afficher les cellules de B7 à B10 en clquant sur "Celluleàcliquer2"
Tout est sur la même colonne.
Merci pour ton aide
0