AL(7.10.2013 16:27)citovat#015589
@ Palooo: chvíľu som si s tým hral, neprišiel som na dôvod, prečo sa Ti to tak chová, ničmenej, asi by tomu šlo zabrániť pridaním jednej inštrukcie pred End Sub:Private Sub lbKlienti_Change()
If Not mbEvents Then
With Sheets("WorkSheet")
For x = 0 To lbKlienti.ListCount - 1
If lbKlienti.Selected(x) = True Then
Range(Cells(1, (x * 4) + 5), Cells(1, (x * 4) + 9)).Columns.Hidden = False
Else
Range(Cells(1, (x * 4) + 5), Cells(1, (x * 4) + 9)).Columns.Hidden = True
End If
Next
End With
End If
[B3].End(xlToRight).Offset(0, 1).Columns.Hidden = True
End Sub
Nie je to síce zrejme striktne v duchu logiky, ale niekedy stačí použiť hrubú silu :)

tato odpoved ma neuspokoji :)
a preco to vlasne robi??
ked tam ma jasne definovane ze kolko stlpcov ma hidnut

To je jednoduché. Protože mu říkáte, aby to udělal
Pro x=7 je totiž
Range(Cells(1, (x * 4) + 5), Cells(1, (x * 4) + 9)).Columns.Address
rovno
$AG$1:$AK$1
ked tam ma jasne definovane ze kolko stlpcov ma hidnut
ano, máte - 5 sloupců ;)
když budu počítat na prstech tak +5, +6, +7, +8, +9 ;))
Už jsem si všiml, že máte tendenci, řešit věci složitěji, než je třeba
Když už to nechcete dělat najednou a pomocí proměnných, tak to zjednodušte třeba takto
Private Sub lbKlienti_Change()
If Not mbEvents Then
For x = 0 To lbKlienti.ListCount - 1
Range("E:H").Offset(0, x * 4).EntireColumn.Hidden = Not lbKlienti.Selected(x)
Next
End If
End Sub

dik eLCHa tvoje riesene funguje a aj je rychlejsie
Not lbKlienti.Selected(x) tak to ma zrovna nenapadlo :) ale uz to budu tak zapisovat o jeden krok menej
tak uz som si to odkrokoval poriadne a uz chapu proc to tak blbo robi dik :)))) .... jaj a ja ze aka zahada

1: 9 - 5 = 4
2: 13 - 9 = 4
3: 21 - 17 = 4
4: 25 - 21 = 4
5: 29 - 25 = 4
6: 33 - 29 = 4
7: 37 - 33 = 4
8: 41 - 37 = 4
kludne to moze cyklit aj do 100 ale urobi to len pri poslednom
Nemůžete počítat 9 - 5 = 4,
ale 9 - 4 = 5 (9 je poslední zobrazený, -4 je poslední skrytý) - nevím jak to srozumitelně vyjádřit - musíte si to vyzkoušet sám ;)
proto jsem tam psal to počítání na prstech
Range(Cells(1, (x * 4) + 5), Cells(1, (x * 4) + 9)) =>
Cells(1, (x * 4) + 5)
Cells(1, (x * 4) + 6)
Cells(1, (x * 4) + 7)
Cells(1, (x * 4) + 8)
Cells(1, (x * 4) + 9) -- tato už tam nepatří
tedy 5 buněk
ono se to necyklí - prostě vždy v jednom kroku provedete s tím pátým sloupcem jednu operaci a v dalším kroku je tentýž sloupec jako 1. a provádíte s ním další - mno a ve výsledku je to vidět až na konci ;)

elcha si rychlejsi ako ja opravujem prispevok :))))) .... ano uz tomu rozumiem

este jedna vec co ma dlhsie trapi a nedosiel som nato preco to robi :)))
ked si v objecte "Drop Down 1" alebo "Drop Down 2" vyberiete prvu polozku a savnete subor
potom ked ho zapnete tak sa nezobrazi .... preco to robi??

Teď jsem mimo. Co je Drop Down?
Příloha?

ta ista priloha je to combo box jeden co vybera roky a druhy mesiace .... len je pomenovany ako drop down ... microsoft nevie uz ako pomenovavat :))

Myslíte - vybrat Január nebo 2012, uložit, zavřít, otevřít a pak ta máte něco jiného?
Mně to tam zůstává.