< návrat zpět
MS Excel
Téma: zobrazení buňky/sloupce na konkrétní pozici
Zaslal/a controlled.e 3.5.2016 21:45
Ahoj,
mám dotaz k Excelu. Nikde jsem zatím podobný problém nenašel, tak buď je to všem jasné, nebo blbě hledám :)
Mám excelovskou tabulku, v ní kalendář. Viz příloha pro jednoduchou ilustraci. Sloupce jsou dny, řádky hodiny daného dne. Tabulka má křížem ukotvené buňky, resp. ukotvený je sloupec A a řádky 1-3. V buňce A2 se vzorcem počítá hodnota - v příkladu je "čtvrtek". A podle té hodnoty chci "pohnout" neukotvenými buňkami tak, aby sloupec s vybranou hodnotou byl první hned za ukotveným sloupcem A. Tedy aby se vzorcem vybraný sloupec přimknul k ukotvenému sloupci A.
Napadly mě dvě řešení, ani jedno ale nedovedu provést :)
a) nějak posunout tu neukotvenou oblast, aby vybraný sloupec lícoval se sloupcem A; pak budou všechny další sloupce/dny vpravo viditelné taky
b) skrýt všechny ostatní sloupce mimo ten vybraný, takže se automaticky přimkne k tomu ukotvenému A; pak by byl vidět jen sloupec A a ten vybraný, ostatní by byly skryty
Obě varianty jsou pro mě schůdné. Preferuju tu rychlejší a jednodušší. Hledal jsem podmíněné formátování pro šířku sloupců, ale to zdá se nejde. Asi je řešením makro, ale tam se neorientuju. Potřebuji, aby ke změně došlo automaticky při změně hodnoty v buňce se vzorcem (tedy žádné tlačítko). A aby to fungovalo pro libovolný počet sloupců (resp. budu přesně znát první sloupec (B) a počet vyplněných sloupců (může jich být 10, ale taky 100).
Je to tak srozumitelné?
Díky moc.
Příloha: 31358_kalendar.zip (24kB, staženo 21x)
Jeza.m(4.5.2016 10:36)#031363 Jenom takovej rychlej pokus :-)
M@
Příloha: 31363_kalendar.zip (13kB, staženo 24x) citovat
Anonym(4.5.2016 18:40)#031365 nebo:
Application.Goto Cells(x, y), Truecitovat
-> Jeza.m: To vypadá slibně, díky moc. Jdu se do toho povrtat.
-> Anonym: Na to jsem moc velká lama. Co s tím, aby to fungovalo? Jak to do sešitu zapracovat?
citovat
-> Jeza.m
Ještě zvídavý dotaz. Tu první smyčku jsem pochopil. Ale k čemu je
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
a čím se to volá?
citovat
Anonym(4.5.2016 21:20)#031375 např:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Cells(1, 1).Address Then
Application.Goto Cells(4, Target + 1), True
Target.Select
End If
End Sub
citovat
marjankaj(4.5.2016 21:23)#031376 Anonym napsal/a:
nebo:Application.Goto Cells(x, y), True
Hezký
citovat
Anonym(4.5.2016 22:25)#031379 případně:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Cells(1, 1).Address Then
ActiveWindow.ScrollColumn = Target + 1
End If
End Sub
citovat
Jeza.m(6.5.2016 12:04)#031409 Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
první se volá se změnou obsahu buňky (manuálním, tzn. ne vzorcem)
druhá se volá se změnou výběru na listu.
V tomto případě jsou obě funkce prázdné, tudíž jako by tam ani nebyly :-). Můžeš je smazat :-)
M@
citovat
controlled.ed(12.5.2016 17:20)#031495 Ještě dotaz k tomu scrollování. Jak to udělat, aby se to provedlo ne při ruční změně buňky, ale přepočtem vzorce v buňce?
citovat