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
Předem dík
Super, pomohlo to, díky
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í
Děkuji,
vyzkoušel jsem to, ale chyba stejná
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
Tak na 64 bit Office to nejede, poslední dvě deklarace v #ELSE části jsou červené.
Zvláštní, že když v 32 bit změním logiku z
#If VBA7 Then na #If Not VBA7 Then
tak to stejně funguje.
A na 64 bitech když měním totéž, tak to nefachá ani tak ani tak. Rovněž jsem namísto VBA7 alternoval Win64 (dle nějakých googlových nálezů) ale taky žádný vliv
Dík, zatím na 32 bitech to fachá. 64 odzkouším až budu doma.
K té výtce: VBA kódy si ovbykle píšu sám, občas po tupém zkopírování upravuji ke svým potřebám, ale porozumět API (zřejmě myšleno jako ten lepší nápad) je přece jenom jiná liga a nedovedl jsem na na netu dohledat moc smysluplných informací.
OK, nouzově by to šlo i takhle, ale než to pak rozparsuje do tabulky, tak je to docela fuška
To vypadá, že se v soboru něco podělalo, sem tam jsem to už zažil. Jakou má ten soubor velikost? Zkus to otevřít na jiném PC a pokud to půjde, zkus to uložit pod jiným názvem. Pokud tam máš tuny vzorců či podmíněného formátování, popřípadě jestli je soubor sdílený, tak asi by ho chtělo nějak pročistit. Viděl jsem už i situace, soubor naboptnal na 50 MB a po pročištění měl se stejnou funkcionalitou kolem 1 MB.
Pokud to neotevřeš na žádném PC, tak nevím o způsobu jak se dovnitř dostat
Ahoj,
z dřívějška mám soubor, (spouští se dvojklikem do žluté zóny), který umí vypsat obsah libovolného adresáře (volitelně i včetně podadresářů) do tabulky. Z času na čas se tato věcička náramně hodí. Jenomže to využívá API funkce pro 32 bitový Office. Na 64 bit to nefunguje
Věděl by někdo z příslušných expertů toto opatřit příslušnými API funkcemi aby to fungovalo i v 64bit Office? Anebo klidně ať to používá jiné technologie, ale ať to umí vypsat obsah nějakého adresáře včetně podadresářů.
Předem dík
Zdar,
je mi záhadou jak jsi vytvořil tu kartu Elektrotrend, která se zjeví na Ribbonu po otevření souboru
Ty tlačítka na kartě jsou sice mrtvé, neboť chybí kód, ale ani v ThisWorkbook není žádný kód pro vytvoření této karty, ani v modulech ani v modulech listů ani ve formulářích.
Co je to za trik?
Předem dík, M.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.