Excel masquer et afficher des lignes vba
Résolu
Elstat
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 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
A voir également:
- Vba masquer ligne
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Ligne occupée - Forum SFR
- Aller à la ligne excel - Guide
- Masquer en ligne instagram - Guide
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 (?))
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.
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.
Je te remerci
Ton code fonctionne à merveil
j'ai juste changer cette ligne
Rows(Target.Row + IIf(Target = "", 1, 2) & ":100").EntireRow.Hidden =
POUR
Rows(Target.Row + IIf(Target = "", 2, 3) & ":100").EntireRow.Hidden =
Ton code est très court et claire
Merci encore
eric