Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  7 8 9 10 11 12 13 14 15   další » ... 16

Nejprve bych ještě zkusil vypnout automatické přepočítávání vzorců a pak optimalizaci smyčky, která provádí "rozkopírování".
Jinak bez zdrojového makra těžko soudit. Ale na ten počet se mi to zase nezdá příliš (samozřejmě pokud je zapnutý automatický přepočet buněk).

NZ
Proto tohle forum existuje

Sice to není 4, ale 3,......
Pak zřejmě nezbyde než vzorec na výpočet upravit tak, aby z té buňky i s časem vyhodnocoval pouze datum.
Tedy:
buňka A1 obsahuje datum i s časem, buňka B1 je pouze datum; pak
=DATUM(ROK(A1);MĚSÍC(A1);DEN(A1))-B1
rozdíl bude správně vypočten na celé číslo.
Další varianta je použít celé číslo a připočítat (respektive odečítat) 0,99

Co je v buňce zapsáno?
Nejlépe přiložit soubor

Pak bych se podíval na formát buněk. Musí tam být formát datum a typ *14.3.2001 (popř. *14. březen 2001)
Pokud je tam formát 14.3.2010 13:30, pak je to špatně.

Lon

Ve verzi MSO 2007 to funguje 100%

Ano, zamknout sešit.

Použití UserForm by mohlo vyhovovat

Pokud mají být stále zobrazeny sloupce A a B, pak stačí změnit
Range(Cells(1, 1), Cells(ra - 1, ca - 1)).EntireColumn.Hidden = True
za
Range(Cells(1, 3), Cells(ra - 1, ca - 1)).EntireColumn.Hidden = True

Podle názvů rozhodně nepracuji.
V úvodu jsou uvedeny všechny potřebné proměnné s popisem.
Vycházím přesně z Tvého zaslaného návrhu, pokud by byly uvedeny všechny potřebné údaje hned a přesně ...

Stále sice neznám Tvoje "náročné" řešení, ale tohle by mohlo být funkční.

Sub Zobrazeni()

Dim row_offset As Single
Dim col_offset As Single
Dim tab_r_index As Single
Dim tab_c_index As Single
Dim tab_index As Single
Dim row_space As Single
Dim col_space As Single
Dim bunka As String

bunka = "A1" ' buňka určující číslo tabulky pro zobrazení

row_offset = 5 ' počet řádků pro zobrazení
col_offset = 3 ' počet sloupců pro zobrazení
tab_index = 4 ' počet tabulek v řádku

row_space = 3 ' počet prázdných řádků mezi tabulkami
col_space = 2 ' počet prázdných sloupců mezi tabulkami

tab_r_index = 4 ' první řádek první tabulky
tab_c_index = 3 ' první sloupec první tabulky

kolik = Range(bunka)

If kolik > 0 Then
kolik = kolik - 1 ' úprava hodnoty pro výpočty
x = Int((kolik) / tab_index)
ra = tab_r_index + (row_offset + row_space) * x
ca = tab_c_index + (col_offset + col_space) * (kolik - tab_index * x)
rx = ra + row_offset - 1
cx = ca + col_offset - 1
Range(Cells(1, 1), Cells(ra - 1, ca - 1)).EntireColumn.Hidden = True
Range(Cells(rx + 1, cx + 1), Cells(Rows.Count, Columns.Count)).EntireColumn.Hidden = True
Range(Cells(1, 1), Cells(ra - 1, ca - 1)).EntireRow.Hidden = True
Range(Cells(rx + 1, cx + 1), Cells(Rows.Count, Columns.Count)).EntireRow.Hidden = True
End If
End Sub

Zpracováno podle Tebou zaslaného příkladu

Lon

Při změně na listu, nebo při vstupu na list lze vyhodnotit obsah zadané buňky a skrýt to co nepotřebuješ.
Bez příkladu těžko napsat něco konkrétnějšího.

Nevím Tvoji variantu, ale tohle bude asi i rychlejší.

Stačí přidat podmínku, které listy mají zůstat zobrazeny.
Ideální by bylo, kdyby měly nějaké společné pojmenování, pokud to bude ceník 1, ceník 2, ... ceník X, pak stačí přidat vyhodnocení pouze na část názvu.

Samozřejmě odkaz na zviditelnění přidat i do Userformu.

Skrýt buňky, které nechceš tisknout (sloupce, řádky)

Netuším jaký problém přináší
Sheets("List1").UsedRange.Rows.Count +1

Stejně tak netuším jak se zapisují jednotlivá data do příslušných řádků po sobě.

Celkově - dosti zmatený dotaz.
Nicméně Sheets("List1").UsedRange.Rows.Count +1 vrací hodnotu posledního použitého řádku zvýšenou o +1 - v tomto případě.

rd_zapis = Sheets("List1").rd_primarni.Rows.Count + 1 nedává vůbec žádný význam a takováto funkce není ve VBA platným příkazem. Proměnná rd_primarni je v tomto zápise zcela nesmylná - obsahuje číslo.

Hypertextový odkaz do skrytých listů nebude fungovat.


Strana:  1 ... « předchozí  7 8 9 10 11 12 13 14 15   další » ... 16

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