Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

Fór je v tom, že na těch nově kopírovaných listech žádné oblasti (kromě oblasti tisku) nejsou. Přesto se do cílového souboru ze zdrojového překopírují úplně všechny oblasti co jsou v sešitu. Ještě budu testovat zdali se dají ty plevelné oblasti nějak automatizovaně mazat.
Ta myšlenka kódem tvořených dynamických oblastí zní zajímavě, ale zřejmě to přinese nutnost následných sekundárních změn v kódu. No nic, když to nepůjde jinak, tak to prubnu. Každopádně dík za radu

Taky se mi někdy stalo, že debugger hlásí tuto chybu a skočí na místo kódu, které s tím vůbec nesouvisí. A pak se ukáže, že jsem se uklepl někde jinde.

To nebyl kód na řazení, ale na zamčení listu tak, aby ho měl uživatel zamčený, ale pro kód aby zamčený nebyl. To getHSL1 je funkce, která vrací heslo, aby to o něco ztížilo hacknutí, takže místo toho tam musíš zadat heslo kterým se list odemyká. Ale samotný kód pro řazení je jiný, např. takhle
Sub TestRazeni()

Dim ws As Worksheet
Dim rOblast As Range

'zadefinuj zkratku pro list
Set ws = Worksheets("seznam")

'pokud tam je filtr, tak ho odepni
If ws.FilterMode Then ws.ShowAllData

'zadefinuj tabulku
Set rOblast = ws.Range("B2").CurrentRegion

'vzestupne razeni podle sloupce B a v druhem levelu sestupne podle sloupce D
rOblast.Sort Key1:=ws.Range("B2"), Order1:=xlAscending, Key2:=ws.Range("D2"), Order1:=xlDescending, Header:=xlYes

End Sub

Pokud to zamykáš ručně, tak i když tam je fajfka pro možnost Seřadit, tak to po zamčení řadit nejde ani podle jednoduchých kritérií, natož podle složitějších.

Ale pokud bys to chtěl řadit kódem, tak není problém. Dokonce to ani nemusíš odemykat, pokud to bude zamčeno kódem s atributem UserInterfaceOnly:=True. Třeba takhle:
ws.Protect GetHSL1, AllowFiltering:=True, UserInterfaceOnly:=True

Ahoj, mám excelový soubor pro správu citlivých dat, v němž používám neškodný vzorek vymyšlených osob.
Při uvolnění nové verze si do něj pak uživatel ručně nakopíruje "citlivé" listy z předchozí ostré verze - pomocí volby Přesunout nebo zkopírovat...
Jenomže s každým přikopírovaným listem dochází k duplikování pojmenovaných oblastí (i těch oblastí, které leží na jiných listech, než na tom kopírovaném). No a pak mu kolabují procedury, které pracují s pojmenovanými Range.

Co se s tím dá dělat? Dají se ty listy nakopírovat nějak jinak bez tohoto duplikačního efektu? Anebo třeba nějaký jiný trik jak procedurou ty blbé oblasti smazat?

Předem dík

Našel jsem radu proti tomuto efektu, akorát ještě nevím zdali to funguje, neboť ke zmenšování formuláře dochází sporadicky.

Že prý by mohlo pomoci v možnostech excelu zvolit na volbě Obecné - Při použití více monitorů volbu "Optimalizovat pro kompatibilitu". Neboť defaultně tam je volba "Optimalizovat pro vzhled".

Tak snad to pomůže...

Jak píše El Nino, pomocí polí je možné toto významně urychlit. Já měl fakt optimalizované makro bez polí, které potřebovalo přes 40 minut. Poté co jsem použil pro řešení pole, tak na to stačily 3 minuty. Ale bylo potřeba nejdřív nastudovat ty dynamické arraye a jejich vrtochy (např. že nejdřív se dynamická 2D array musela transponovat aby s ní šlo pracovat a na konci zase transpozice zpět). Přehled jednotlivých proměnných při ladění kódu s použitím array je uživatelsky mnohem méně přívětivý než u "klasiky"

Takže dle uvedeného linku je list zaručeně odemčen pokud platí všechny tři podmínky. Udělal jsem si na to funkci

Function ListZamcen(ws As Worksheet) As Boolean
With ws
If Not .ProtectContents And Not .ProtectDrawingObjects And Not .ProtectScenarios Then
ListZamcen = False
Else
ListZamcen = True
End If
End With
End Function


Předběžné testy hlásí, že to funguje. Díky

Ano, samovolné zmenšování formulářů pozoruju taky. Někdy se to zmenší až tak hrůzostrašně, že už je to nepoužitelné, ale to jsem zažil jednou, obvykle se to zmenší jen "snensitelně". Pak stačí jít do VBA prostředí, chytnout formulář za okraj a on sám skočí na původní velikost. Ale nevíš hodinu ani den kdy se to stane znovu.
Pozorováno na Office 365, 32 bit verzi. Jestli má na to vliv verze office, provozování na více monitorech či něco jiného jsem za těch pár let ještě spolehlivě nezjistil...

Ahoj, pro zjišťování zdali je daný list zamčený nebo ne (a podle toho např. nastavovat popis odemykacího/zamykacího tlačítka) jsem dosud postupoval takto:
If ActiveSheet.ProtectContents = True Then
Jenomže ve skutečnosti tím nezjišťuji, zdali je daný list zamčený, ale něco trošku jiného (viditelnost obsahu buňky v zadávacím řádku při zamčeném listě). A zrovna toto chování potřebuju změnit, takže musím se chytit něčeho jiného. Jak má ta podmínka správně znít? Dívám se do https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.protect, ale nenacházím to tam 4

Předem dík

Super, pomohlo to, díky 1

Ahoj, mám sloupec s hodnotami, kde jsou převážně údaje ANO nebo NE. Když chci zkopírovat hodnotu NE a chytnu jí myší za rožek a táhnu, tak mi tam naskakují zkratky dnů v týdnu (PO, ÚT...). Vím, že se SHIFTem tam bude zůstávat furt NE, ale raději bych tuto vychytávku úplně zakázal.
Myslím, že někde má ten excel tyto běžné posloupnosti (dny v týdnu, měsíce v roku apod.) zadefinované ale zaboha to neumím najít. Nechci používat YES / NO ani True / False ale ANO NE. Předem dík za nasměrování 1

Děkuji,

vyzkoušel jsem to, ale chyba stejná 4

Ahoj, mám v kódu tuto část:
On Error Resume Next
dtStamp = Application.InputBox(Prompt:="Potvrď čas provedení tohoto úkonu", Title:="Časové razítko", Default:=Format(Now(), "dd.mm.yy hh:mm"), Type:=2)
If Err <> 0 Then
MsgBox "zadaná hodnota nejde převést do formátu datum/čas"
GoTo znoVa
End If

přičemž Dim dtStamp As Date

Na všech PC toto funguje, pouze na jednom to kolabuje. Příkaz pro načtení aktuálního času do proměnné dtStamp tam vyhodí chybu 13. Asi to souvisí s nějakým nastavením času, ale ve Windows to máme všichni dlouhý i krátký formát datumu stejně.
Nevěděl by někdo co může způsobovat tuto chybu?
Předem dík moc!

Dík, nastuduju a zkusím pořešit


Strana:  « předchozí  1 2 3 4 5 6 7 8 9   další » ... 10

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

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21