Dobrý den,
Děkuji za snahu. VBA kody tvořit neumím tudiž první dva odstavce Vaší odpovědi mi nic moc neříkají :-)
Dělám si takovou analýzu prodejních dat a jelikož jde o citlivé data, nechci je zveřejnit. Přikládám aspoň screen jak vypadá část listu a o co mi jde.
V buňce E3 je seznam, který obsahuje názvy různých skupin produktů (v současnosti 7 skupin, v dohledné době se nebudou rozšiřovat). Po zvolení určité skupiny se do buněk E11 - E31 zobrazí přišlušný počet produktů dané skupiny (tento počet je různý, na obrázku jsou 4 (E11 - E14) ale mohou být až E11-E31). Co potřebuji je, že při jakékoliv změně hodnoty v seznamu (E3) a zobrazení možných produktů v oblasti E11-E31, makro skryje všechny prázdné řádky z této oblasti. Proč to potřebuji? Protože jak je vidět na obrázku, na první oblast dat navazuje oblast dat druhá, kde si v buňce E35 pomocí seznamu mohu zvolit produkt, který se objevil v oblasti E11-E31 a analyzovat ho hlouběji. Každý produkt má totiž ještě libovolný počet forem balení. A i zde potřebuji po změně buňky v E35 skrýt všechny prázdné řádky v oblasti E39:E54. Cílem tedy je, aby to nějak vypadalo... Předpokládám, že počty produktů i forem balení se budou nadále rozšiřovat a velké prázdné oblasti by nevypadaly pěkně.
Přikládám ještě použité makro "skrytí_radku1" na které se odkazovalo původní VBA kod.
Sub skryti_radku1()
Application.ScreenUpdating = False
Sheets("Quick View_v2").Select
Rows("11:31").Select
Selection.EntireRow.Hidden = False
colonne B (colonne masquée)
Dim plage As Range, c As Range
Set plage = [E11:E31]
For Each c In plage
If c.Value = "" Then
c.EntireRow.Hidden = True
Else
c.EntireRow.Hidden = False
End If
Next c
Cells(3, 5).Select
End Sub
Moc Vám děkuji za případné řešení.
Příloha: 31853_bez-nazvu.zip (38kB, staženo 24x) citovat