PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

maxime79

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je suis nouveau sur le forum et je suis également débutant en VBA...
Je tiens d'ailleurs à tous vous remercier car tout ce que j'ai appris récemment je le dois à vos posts et à vos réponses.

J'ai d'ailleurs bien tenté de trouver la solution à mon pb mais sans succès...
Voici mon pb (je ne pense pas que cela soit trop compliqué)

Je voudrai tout simplement Masquer des lignes en fonction de la valeur d'une cellule.. cad que si la valeur de la cellule B10 est > à celle de B12
je voudrai masquer les lignes 15 à 18 par exemple...
J'espère avoir été clair dans mes explications..

Merci d'avance pour votre aide
 

Papou-net

XLDnaute Barbatruc
Re : PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

Bonjour maxime79, et bienvenue !

Voici un exemple de code à insérer dans l'événement Change de ta feuille de calcul :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B10").Value > Range("B12").Value Then
  Range("B15:B18").EntireRow.Hidden = True
  Else
  Range("B15:B18").EntireRow.Hidden = False
 End If
 
End Sub

Espérant t'avoir aidé.

Cordialement.
 

JNP

XLDnaute Barbatruc
Re : PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

Bonjour Maxime79 et bienvenue :),
Code:
If Range("B10") > Range("B12") Then Rows("15:18").EntireRow.Hidden = True
A adapter à tes besoins.
Bonne journée :cool:
Ajout : Bonjour Papou-Net
 
Dernière édition:

maxime79

XLDnaute Nouveau
Re : PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

Merci bcp à vous deux, cela marche et je connais maintenant le modèle de la macro à utiliser...
Cependant, cela ne marche qu'à moitié je vais dire. En effet, ma Cellule B10 qui se trouve en feuille 2 est en fait le résultat d'une division (de 2 cellules) effectuée en feuill 1.
Et la macro ne marche pas de manière automatique car lorsque je modifie les valeurs de mes celulles de la feuille 1 et que je vais en feuil 2 (la ou la macro devrait afficher ou masquer les lignes) celle ci ne marche pas!
je suis obligé de rentrer la valeur dans B10 (dans la feuille 2) pour que la macro s'effectue...
Savez vous s'il est possible que cela se fasse automatiquement et que lorsque je passe en feuill 2 (une fois les cellules modifiées en Feuille1) les lignes soient affichées ou masquées?

En tous les cas, déjà merci, cela va m'aider
 

maxime79

XLDnaute Nouveau
Re : PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

humm... désolé Papou-Net mais je ne vois pas à quoi cela correspond... (connaissances encore trop faibles)..
Mais de toutes les manières, je pense abandonner cette solution car cela ma semble compliqué pour ce que je veux réellement faire.
En fin de compte, j'ai plusieurs lignes différentes à cacher ou à afficher en fonction du résultat de B10 : des fois B10 doit être en même temps < à B14 et =>B16
et en fonction de cela, les lignes 15:17 doivent être masquées mais aussi 19:20 (donc en gros il faut seulement afficher la ligne 18...
donc je pense que cela devient un peu trop compliqué....

Mais merci en tous les cas pour aide et réactivité!
 

Papou-net

XLDnaute Barbatruc
Re : PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

Celà peut te sembler compliqué, maxime79, mais il n'en est rien.
Pour la solution que je te proposais, voici comment faire :

-Après avoir lancé l'éditeur VBA (ALT +F11), tu double-cliques sur le nom de ta feuille, dans la fenêtre de gauche.

- Puis dans la fenêtre de droite, liste déroulante de gauche, tu cliques sur Worksheet.

- Dans la liste déroulante de droite, tu choisis Activate.

- Il ne reste plus qu'à insérer les lignes de code que je t'ai adressées plus tôt et tu obtiens :

Code:
Private Sub Worksheet_Activate()
If Range("B10").Value > Range("B12").Value Then
  Range("B15:B18").EntireRow.Hidden = True
  Else
  Range("B15:B18").EntireRow.Hidden = False
 End If

End Sub

Pour ce qui concerne tes conditions multiples, il y a toujours une solution. Si tu le désires, tu peux me communiquer ton fichier, sans données confidentielles, et je pourrai y regarder.

Un projet concret est la solution idéale pour apprendre et progresser en VBA, mais c'est toi qui décides.

Bien cordialement.
 

maxime79

XLDnaute Nouveau
Re : PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

Bonjour Papou-net,

Je tiens juste à te remercier, car en fin de compte, je me suis vraiment penché sur mon problème et grâce à tes idées et aux solutions proposées j'ai finalement réussi à faire ce que je voulais!
Effectivement, c'est vraiment de cette manière que je vais apprendre le plus possible sur VBA, mais il faut que me dégage un peu plus de temps pour vraiment commencer à maîtriser les choses vraiment essentielles à savoir!
Encore Merci pour ta précieuse aide!
Bien cordialement et bonne journée
 

temprano

XLDnaute Nouveau
Re : PB Macro Afficher / Masquer lignes en fonction de la valeur d'une cellule

Bonjour,

j'ai posté le mêm genre de question hier sur un autre post mais n'ai pas obtenu de réponse satisfaisante pour le moment.

Donc je repose ma question ici : je cherche à masquer certaines lignes en fonction des valeurs de 2 cellules (O1 et Q1) :
Si ma valeur en O1 est à "M0" je souhaite masquer les lignes 11:13 ; si O1 = "M1" je souhaite masquer les lignes 11:15
ET (LES DEUX ACTIONS SIMULTANEMENT)
Si ma valeur en Q1 est en "M3" je souhaite masquer les lignes 19:40 ; si Q1 = "M4" alors je souhaite masquer les lignes 20:40 etc...

Pour le moment mon code ci-dessous fait soit l'un soit l'autre

D'avance merci pour votre aide...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$Q$1" Then
Rows.Hidden = False
Select Case Range("Q1").Value
Case "M0": Rows("15:40").Hidden = True
Case "S1": Rows("16:40").Hidden = True
Case "M1": Rows("17:40").Hidden = True
Case "M2": Rows("19:40").Hidden = True
Case "M3": Rows("19:40").Hidden = True
Case "M4": Rows("20:40").Hidden = True
Case "M5": Rows("21:40").Hidden = True
Case "M6": Rows("22:40").Hidden = True
Case "M7": Rows("23:40").Hidden = True
Case "M8": Rows("24:40").Hidden = True
Case "M9": Rows("25:40").Hidden = True
Case "M10": Rows("26:40").Hidden = True
Case "M11": Rows("27:40").Hidden = True
Case "M12": Rows("28:40").Hidden = True
Case "M13": Rows("29:40").Hidden = True
Case "M14": Rows("30:40").Hidden = True
Case "M15": Rows("31:40").Hidden = True
Case "M16": Rows("32:40").Hidden = True
Case "M17": Rows("33:40").Hidden = True
Case "M18": Rows("34:40").Hidden = True
Case "M19": Rows("35:40").Hidden = True
Case "M20": Rows("36:40").Hidden = True
Case "M21": Rows("37:40").Hidden = True
Case "M22": Rows("38:40").Hidden = True
Case "M23": Rows("39:40").Hidden = True
Case "M24": Rows("40").Hidden = True
End Select
End If
If Target.Address = "$O$1" Then
Rows.Hidden = False
Select Case Range("O1").Value
Case "M0": Rows("11:13").Hidden = True
End Select
End If
End Sub
 

Marion12

XLDnaute Nouveau
Bonjour,

Je m'incruste dans la conversation. J'aimerai également masquer plusieurs cellules (A40:K61) selon la valeur renseignée en I2. En fait, en I2, il s'agit d'une rentrée manuelle de la date, et je voudrais que lorsqu'en I2 c'est le dernier jour du mois qui est renseigné, les cellules (A40:K61) s'affichent.

Je suis novice en macro VBA, je n'ai jamais fait de formule, juste des enregistrements... Si quelqu'un pouvait m'aider ça serait génial!!

Merci beaucoup!
 

Si...

XLDnaute Barbatruc
Bonjour

Un exemple avec un "cache" sur la zone exclusivement.

C’est plus simple de masquer les lignes quand les autres cellules de celles-ci sont inutilisées.
Mais est-ce le cas ?
 

Pièces jointes

  • Afficher-Masquer Plage Si.xlsm
    59.1 KB · Affichages: 103

Si...

XLDnaute Barbatruc
re

On gagne toujours quand on essaie de se débrouiller comme une grande;) !

Tu auras quand même toujours de l’aide ici.

Dans l’exemple, l’étiquette est blanche... c’est la plage que j’ai teintée en jaune pour mieux la visualiser et définir la taille du cache.
 

Marion12

XLDnaute Nouveau
C'est sûr mais là j'avais vraiment besoin d'aide je n'en pouvais plus
Oui j'ai mis un peu laps de temps à comprendre ^^

C'est cool car je suis loin d'avoir terminé mon fichier donc je risque de revenir avec mes questions!

Merci beaucoup en tout cas
 

Discussions similaires

Statistiques des forums

Discussions
312 024
Messages
2 084 718
Membres
102 638
dernier inscrit
TOTO33000