VBA, erreur hide rows

news

XLDnaute Impliqué
Bonjour à tous du forum,

sous VBA j'ai le code suivant,

Sub hidecolumns()
If Range("5:6,9:10,14:16").EntireRow.Hidden = False Then
Range("5:6,9:10,14:16").EntireRow.Hidden = False = False
Else
Range("5:6,9:10,14:16").EntireRow.Hidden = True
Range("C6").Select
End If
End Sub


Au lieu de cacher globalement, comment je peux inclure sous VBA les conditions suivantes que certaines lignes sont visibles quand N5 ou N9 ou N14 sont vides,

et de définir sous une 2e macro lorsque sous N:N une ligne est vide, cache cette ligne. Il s'agit d'un listing de beaucoup de lignes

Quand N5 ="",
à cacher row 5:6

Quand N9 = ""
à cacher row 9:10

Quand N5 et N9 ="",
à cacher row 5:6, 9:10

Quand N5 et N9 et N14 ="",
à cacher row 5:6, 9:10, 14:16
 

Pièces jointes

  • prov. hide.xls
    42.5 KB · Affichages: 42
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : VBA, erreur hide rows

Bonjour à tous


Il s'agit bien de Rows (donc de lignes), non ? (Je dis cela à cause du nom de ta macro : hidecolumns)

Essaie avec le code ci-dessous
Code:
Sub a()
Rows("5:6").Hidden = ([N5] = "")
Rows("9:10").Hidden = ([N9] = "")
Rows("14:16").Hidden = ([N14] = "")
End Sub
 
Dernière édition:

news

XLDnaute Impliqué
Re : VBA, erreur hide rows

Bonjour Staple1600, et à tous du forum,

IL s'agit bien de rows, mais dans l'exemple je pourrais nommer Sub hide-columns-and-rows()

Dans cet exemple j'ai besoin de la 2e condition:

Comment je peux inclure lorsque N9 =""
Rows("9:20").Hidden = ([N9] = "")

mais faire invisible que la ligne est vide lorsque N10:N20 est vide également et cache cette ligne.
p.ex N9 ="" et N10 ="", ligne N10 est cachée
N9="" et N11,N12 <>"", les lignes 11:12 ne sont pas cachées
N9= "" et N13="", cache ligne N13
N9="" et N15 <>"", ces 2 lignes restent visibles est non cachées,
...
 
Dernière édition:

news

XLDnaute Impliqué
Re : VBA, erreur hide rows

Re: Staple1600 et à tous du forum,

La formule ci-dessous résoud, mais elle prend quelques ca. 2minutes pour cacher toutes les lignes. L'écran vibre et Excel est bloqué pendant ca. 2 minutes.
Est-ce qu'il a autre formule plus vite?
Comme inclure aussi les formules sous A:A, mais résultat est vide



Code:
Sub HideLignesAvide()
Range("A1:A1600").Select
    For Each a In Selection   
        If a.Value = "" Then
    o.EntireRow.Hidden = True
        End If
    Next
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : VBA, erreur hide rows

Re


Essaies ces différentes pistes
Code:
Sub avecFiltreAuto()
Application.ScreenUpdating = False
Range("A1:A1600").AutoFilter Field:=1, Criteria1:="<>"
Application.ScreenUpdating = True
End Sub

Code:
Sub avecFiltreAvancé()
Range("B2").FormulaR1C1 = "=NOT(ISBLANK(RC[-1]))"
Range("A1:A1600").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("B1:B2"), Unique:=False
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : VBA, erreur hide rows

Re

J'avais oublié la solution avec SpecialCells

Code:
Sub avecSpecialCells()
Range("A1:A1600").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

EDITION Salut Efgé, merci pour le petit coucou ;)
 
Dernière édition:

news

XLDnaute Impliqué
Re : VBA, erreur hide rows

Re: Staple 1600 et a tous du forum,

je me rappelle de : Application.ScreenUpdating = False
va éviter le vibre de l'écran
à la fin de l'application: Application.ScreenUpdating = True

Cela fait longtemps, un bon bout de temps, ca 2 ans que je n'ai plus utilisé et testé les formules en VBA,

je vais tester,

merci,
 

Efgé

XLDnaute Barbatruc
Re : VBA, erreur hide rows

RE
c'était à voir dans le contexte lorsque le résultat = 0,
En regardant ta formule
=SI( N4=0 ; 0 ; N4 )

Je te propose d'essayer ceci qui te donneras exactement le même résultat...
=SI (N4=N4;N4;N4)
Tu verras que quelque soit le "contexte" cette formule se résume à
=N4

Et que donc, comme tu t'appuies sur cette formule pour masquer tes lignes, cela ne sert pas à grand chose.
Autant s'appuyer directement sur la colonne N

C'était juste en passant.

Bon courage pour la suite.
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote