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..
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
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?
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é!
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.
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
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
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!!