Excel masquer et afficher des lignes vba
Résolu
Elstat
Messages postés
1
Statut
Membre
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, à tous
j'ai dans une page des lignes que je veux cacher si dans la colonne G à partire de la ligne 34 est vide et je veux cacher les lignes de la ligne 36 à 100.
exemple: si je place une valeur dans la cellule G35 je veux que la les lignes G37 à G100 ce masquent et si j'enlève la valeur dans la cellule G35 je veux que les ligne G36 à G100 ce masquent.
Je cherche à simplifier une liste de commande
If [G34] = "" Then Rows("36:100").EntireRow.Hidden = True
If [G35] = "" Then Rows("37:100").EntireRow.Hidden = True
If [G36] = "" Then Rows("38:100").EntireRow.Hidden = True
.
.
.
If [G98] = "" Then Rows("100:100").EntireRow.Hidden = True
Voici ma tentative de code et merci pour votre aide
Sub Masquer()
Dim I As Long
I = 34
Do While I < 101
If Cells(I, 7) = "" Then Cells(I + 2, 100).EntireRow.Hidden = True
End If
I = I + 1
Loop
End Sub
j'ai dans une page des lignes que je veux cacher si dans la colonne G à partire de la ligne 34 est vide et je veux cacher les lignes de la ligne 36 à 100.
exemple: si je place une valeur dans la cellule G35 je veux que la les lignes G37 à G100 ce masquent et si j'enlève la valeur dans la cellule G35 je veux que les ligne G36 à G100 ce masquent.
Je cherche à simplifier une liste de commande
If [G34] = "" Then Rows("36:100").EntireRow.Hidden = True
If [G35] = "" Then Rows("37:100").EntireRow.Hidden = True
If [G36] = "" Then Rows("38:100").EntireRow.Hidden = True
.
.
.
If [G98] = "" Then Rows("100:100").EntireRow.Hidden = True
Voici ma tentative de code et merci pour votre aide
Sub Masquer()
Dim I As Long
I = 34
Do While I < 101
If Cells(I, 7) = "" Then Cells(I + 2, 100).EntireRow.Hidden = True
End If
I = I + 1
Loop
End Sub
2 réponses
-
Bonsoir,
Essaie avec ça.
Je me suis basé sur le texte :
exemple: si je place une valeur dans la cellule G35 je veux que la les lignes G37 à G100 ce masquent et si j'enlève la valeur dans la cellule G35 je veux que les ligne G36 à G100 ce masquent.
sans tenir compte si les cellules en-dessous sont pleines ou vides (ce que tu fais dans ton code (?))
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [G36:G100]) Is Nothing Then Exit Sub Rows("36:100").EntireRow.Hidden = False Rows(Target.Row + IIf(Target = "", 1, 2) & ":100").EntireRow.Hidden = True End Sub
eric
PS: la prochaine fois utilise un site sans pub stp, comme cjoint.com
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.