Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : Masquage de ligne sur une plage variable

4 réponses
Avatar
Domi
Bonjour à tous,

Je souhaiterais, par VBA, masquer l'ensemble des lignes comprises entre la
ligne 18 incluse et la première ligne en dessous qui contient une valeur
entre les colonnes G et J.
ou dit autrement
Masquer toutes les lignes qui ne contiennent aucune valeur dans la plage
G18:Jxx, où xx est la première ligne (au dela de la 18) qui contient une
valeur entre G et J.

Quelqu'un aurait-il une solution à me proposer ?
Merci
Domi

4 réponses

Avatar
AV
Sub zzz()
For i = Rows(Rows("19:65536").Find("*", , , , , xlPrevious).Row).Row To 19
Step -1
If Evaluate("CountA(" & i & ":" & i & ")") = 0 Then Rows(i).Hidden = True
Next
End Sub

AV
Avatar
Domi
Merci Alain mais ça "coince"... j'ai systématiquement un message "Sub ou
fonction non définie" sur Step -1 ...
Juste pour info, j'ai du mal a voir dans ton code comment il sait que c'est
entre G et J qu'il doit rechercher les lignes vides... ?
Parce que les autre colonnes dans la plage à masquer elles contiennent des
valeurs...
A+
Domi


"AV" a écrit dans le message de
news:
Sub zzz()
For i = Rows(Rows("19:65536").Find("*", , , , , xlPrevious).Row).Row To 19
Step -1
If Evaluate("CountA(" & i & ":" & i & ")") = 0 Then Rows(i).Hidden True
Next
End Sub

AV




Avatar
AV
Merci Alain mais ça "coince"... j'ai systématiquement un message "Sub ou
fonction non définie" sur Step -1 ...


C'est un problème de recopie : de For i jusquà Step -1 tout est sur une seule
ligne

Juste pour info, j'ai du mal a voir dans ton code comment il sait que c'est
entre G et J qu'il doit rechercher les lignes vides... ?
Parce que les autre colonnes dans la plage à masquer elles contiennent des
valeurs...


Ok je pensais que le reste était vide donc j'avais fait une recherche sur les
lignes complètes
Donc correction (à tester) :

Sub zzz()
For i = Rows([G19:J65536].Find("*", , , , , xlPrevious).Row).Row To 19 Step -1
If Evaluate("CountA(G" & i & ":J" & i & ")") = 0 Then Rows(i).Hidden = True
Next
End Sub

AV

Avatar
Domi
Testé et approuvé ;o)
Merci
Domi

"AV" a écrit dans le message de
news:%
Merci Alain mais ça "coince"... j'ai systématiquement un message "Sub ou
fonction non définie" sur Step -1 ...


C'est un problème de recopie : de For i jusquà Step -1 tout est sur une
seule

ligne

Juste pour info, j'ai du mal a voir dans ton code comment il sait que
c'est


entre G et J qu'il doit rechercher les lignes vides... ?
Parce que les autre colonnes dans la plage à masquer elles contiennent
des


valeurs...


Ok je pensais que le reste était vide donc j'avais fait une recherche sur
les

lignes complètes
Donc correction (à tester) :

Sub zzz()
For i = Rows([G19:J65536].Find("*", , , , , xlPrevious).Row).Row To 19
Step -1

If Evaluate("CountA(G" & i & ":J" & i & ")") = 0 Then Rows(i).Hidden
= True

Next
End Sub

AV