Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  145 146 147 148 149 150 151 152 153   další » ... 302

To je doplnok "Analytické nástroje". Čo všetko obsahuje sa mi nechce hľadať. Vypnite ho v nastaveniach, a uvidíte, či Vám bude niečo pri práci chýbať.

Tu máte ešte prípadne aj obojstrannú verziu. Teda listy si označenú oblasť odovzdávajú navzájom.

A dal ste tam aj Modul s globálnou premennou sBunka ?

No tak to Vám Smart Filter (Rýchly filter) ani objekt Tabuľka nepôjde.
Vám teda ide vlastne o čo?
- Potrebujete iba zo zdrojových dát nájsť 1 hodnotu za splnenia niekoľkých kritérií ? To spravíme maticovým vzorcom.
- Alebo potrebujete po zadaní nejakých kritérií niekam do buniek, niekde vedľa vypísať všetky riadky zdrojovej tabuľky, ktoré vyhovujú ? To robte Rozšíreným filtrom s vhodne umiestnenými parametrami (to sa robí manuálne).
- A čo tak použiť KT ? Veď tá sa dá zobraziť takmer rovnako ako zdroj (nie vždy), a môžete použiť jej filtre.

Priložte prílohu s príkladom.

No Rýchlym filtrom...

Nemôžete mu vkladať oblasť, ale už redukované pole:
=MODE(IF(SUBTOTAL(3;OFFSET(ref. stĺp;ROW(ref. stĺp)-2;;1))=1;stĺp hodnôt))
=MODE(KDYŽ(SUBTOTAL(3;POSUN(ref. stĺp;ŘÁDEK(ref. stĺp)-2;;1))=1;stĺp hodnôt))

Takzvaný "Definovaný názov":
Karta Vzorce - Správca názvov - Nové (napísať názov) - Odkaz na (napísať vzorec alebo oblasť)
V určitých prípadoch sa dá použiť aj dynamicky meniaci sa rozsah. Napr ak v názve POCTY zmeníte vzorec na
=OFFSET(Spolu!$B$3;;;COUNTA(Spolu!$B$3:$B$500))
=POSUN(Spolu!$B$3;;;POČET2(Spolu!$B$3:$B$500))

tak keď pripíšete nový údaj, tabuľky ho do seba zahrnú.
Ale slová "v určitých prípadoch" znamenajú napr.:
-musí sa jednať o súvislú oblasť bez prázdnych riadkov, inak funkcia COUNTA/POČET2 nebude vracať požadované číslo
-pod zdrojovou tabuľkou nesmú byť žiadne iné dáta
-výsledkové tabuľky musia byť dostatočne dimenzované na predpokladaný možný počet výsledkov
-rozumne veľká zdrojová oblasť - teraz je B3:B500. Určite nedávať celý stĺpec (milión riadkov).
...

No neviem, mňa napadá len takéto zložitejšie riešenie (nesedí nám spolu zaokrúhľovanie) :
=IF(B2<>"";B2;C1+(MIN($B3:$B$366)-MAX($B$1:$B2))/(MATCH(MIN($B3:$B$366);$B$1:$B$366;0)-MATCH(MAX($B$1:$B2);$B$1:$B2;0)))

=KDYŽ(B2<>"";B2;C1+(MIN($B3:$B$366)-MAX($B$1:$B2))/(POZVYHLEDAT(MIN($B3:$B$366);$B$1:$B$366;0)-POZVYHLEDAT(MAX($B$1:$B2);$B$1:$B2;0)))

No, bez Select-u:

hárok1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sBunka = Target.Address
End Sub


hárok2
Private Sub Worksheet_Activate()
On Error Resume Next
Range(sBunka).Activate
End Sub


Modul
Public sBunka As String

Kvázijednoduchý maticový vzorec ? Pridal som aj list s výberom z rozbaľovacieho zoznamu.

Zatiaľ len na 1 list. Na všetky listy v zošite, je potreba myslieť ešte na výpis listov, ktoré sa odomknúť nepodarilo (pže užívateľ v odomknutom stave mohol zmeniť heslo manuálne)... Neviem, či na to budem mať večer čas. Zatiaľ toto...
Sub Zamknout_Odemknout()
Dim sPass As String

With wsData
If .ProtectContents Then
sPass = InputBox("Heslo k odemknutí listu:", "Odemknout list")
If sPass = "" Then MsgBox "Nebylo zadáno žádné heslo." & vbNewLine & "List nebyl odemčen.", vbExclamation: Exit Sub

On Error Resume Next
.Unprotect Password:=sPass
If Err.Number <> 0 Then
MsgBox "Zadané heslo není správné!" & vbNewLine & "List nebyl odemčen.", vbCritical: Exit Sub
Else
.Shapes("btnLock").OLEFormat.Object.Caption = "Zamknout"
End If
On Error GoTo 0

Else

sPass = InputBox("Heslo k zamknutí listu:", "Zamknout list")
If sPass = "" Then MsgBox "Nebylo zadáno žádné heslo." & vbNewLine & "List nebyl zamčen.", vbExclamation: Exit Sub

If sPass <> InputBox("Zadejte heslo ještě jednou:", "Potvrdit heslo") Then
MsgBox "Zadaná hesla se neshodují!" & vbNewLine & "List nebyl zamčen.", vbCritical: Exit Sub
Else
.Shapes("btnLock").OLEFormat.Object.Caption = "Odemknout"

On Error Resume Next
.Protect Password:=sPass
If Err.Number <> 0 Then
MsgBox "Při zamykání listu nastala chyba!" & vbNewLine & "List nebyl odemčen.", vbCritical, "Chyba": Exit Sub
.Shapes("btnLock").OLEFormat.Object.Caption = "Zamknout"
End If
On Error GoTo 0
End If
End If
End With
End Sub

A prečo chcete nahrádzať natívnu funkcionalitu Excelu (Revízia - Zabezpečiť hárok) ?

Píšete o liste, ale v cykle zamykáte/odomykáte všetky listy zošitu. Tak ako to je ?

Tie čísla sú vždy vzostupné po 1?
a) Ak nie, potom treba na dohľadanie nasledujúceho použiť :
=INDEX(Čísla!$A$2:$A$400;MATCH(H10;Čísla!$A$2:$A$400;0)+1)
=INDEX(Čísla!$A$2:$A$400;POZVYHLEDAT(H10;Čísla!$A$2:$A$400;0)+1)

b) Ak áno, potom stačí asi iba
=H10+1
c) Dá sa urobiť makro, ktoré sa Vás opýta na počet štítkov, a nakopíruje ich aj s číslami za Vás. Musí sa zistiť, či netreba vkladať zlomy strán, aby boli štítky správne vytlačené a nerozkladali sa "cez" stránky.

d) Alebo makro, ktoré bude postupne tlačiť zadaný počet lístkov, ale vytvorená bude len 1 stránka, v ktorej bude makro meniť čísla a posielať stránky na tlačiareň.

Iba nápad. Ale nepočíta sa s tým, že bude chýbať počiatočný alebo koncový údaj, a tiež sa počíta s tým, že sú hodnoty vzostupné, tak ako je v príklade.
=IF(B2<>"";B2;C1+(AVERAGE(MAX($C$1:$C1);MIN($B3:$B$12))-MAX($C$1:$C1)))

=KDYŽ(B2<>"";B2;C1+(PRŮMĚR(MAX($C$1:$C1);MIN($B3:$B$12))-MAX($C$1:$C1)))


EDIT: Vymenil som prílohu o 8:51, lebo som si uvedomil, že je nesprávna. :)

Od Office 2010 (vrátane) vyššie. Ak sa nemýlim.
Application.CommandBars.ExecuteMso ("PrintPreviewAndPrint")
Problém je, že makro ďalej pokračuje. Nečaká na žiadne voľby, tlač, na nič, a nevie ani o prípadnom zrušení tlače. Spomínam to preto, že treba na to myslieť.
Keď som pred rokmi hľadal nejaké riešenie pozastavenia makra na dobu zobrazenia tohto dialógu, nič dostupné ešte nebolo.


Strana:  1 ... « předchozí  145 146 147 148 149 150 151 152 153   další » ... 302

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje