< návrat zpět

MS Excel


Téma: Makro - skrývání buněk na základě hodnoty buňky rss

Zaslal/a 16.12.2015 12:16

Dobrý den,
prosím o pomoc s tvorbou makra, které by na základě změny hodnoty buňky "B1" v listu 3 skrylo nebo zobrazilo řádky 45 - 50 v listu 4. Hodnota buňky "B1" v listu 3 je dána jiným makrem a nabývá hodnot od 1 do 10. Pokud je hodnota rovna 1,2 nebo 10, mají zůstat řádky v listu 4 zobrazeny, u všech zbývajících hodnot mají být skryty.
Potřebuji, aby se to chovalo "dynamicky", tedy např. pokud je hodnota 3 - řádky jsou skryty a poté se hodnota změní na 2 - řádky se odkryjí a opačně.
Děkuji za pomoc.

... zatím jsem sepsal toto, ale nefunguje, neumím se odkázat na jiný list.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim Check As Range
Set Check = Range("I1")

If Not Intersect(Check, Target) Is Nothing Then


If Check.Value = 1 Or Check.Value = 2 Or Check.Value = 10 Then
Call Zobraz_kritérium_4
End If
If Check.Value = 3 Or Check.Value = 4 Or Check.Value = 5 Or Check.Value = 6 Or Check.Value = 7 Or Check.Value = 8 Or Check.Value = 9 Then
Call Skryj_kritérium_4
End If

End If
End Sub

Sub Skryj_kritérium_4()
'
' Skryj_kritérium_4 Makro
'

Rows("45:50").Select
Selection.EntireRow.Hidden = True
Range("I1").Select
End Sub
Sub Zobraz_kritérium_4()
'
' Zobraz_kritérium_4 Makro
'

'
Rows("44:51").Select
Selection.EntireRow.Hidden = False
Range("I1").Select
End Sub

Zaslat odpověď >

#028724
avatar
Je to psané hodně neohrabaně, ale zas tak daleko od cíle nejste. Jenom v popisu problému pracujete s buňkou B1 a v kódu s I1. To nejspíš pokládáte za drobný detail 1 .
Jestli se vám ještě dlouho nikdo neozve, tak ten váš kód přepíšu do spisovnější podoby.
Když jsem to začal upravovat, scvrklo se mi to na tuto událostní proceduru (nutno umístit do modulu pro list):

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Check As Range
Set Check = Range("I1")
If Intersect(Check, Target) Is Nothing Then Exit Sub
Select Case Check.Value
Case 1, 2, 10
Sheets(2).Rows("45:50").Hidden = False
Case 3 To 9
Sheets(2).Rows("45:50").Hidden = True
End Select
End Sub
Označení Sheets(2) je volání listu s těmi skrývanými řádkycitovat
#028755
avatar
Výtečně, funguje to!
Děkuji velice, hezké svátky :-).citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32

Čas od do

jarek1111 • 18.4. 8:31