Ak sú farby z PF, treba na to ísť úplne inak. Ale tak na otázky sa neodpovedá, tak to asi zvládnete...
Pri naštartovaní UserFormu?
Alebo je UserForm stále naštartovaný a počas práce meníte v liste bunky, a tie zmeny sa majú prenášať do Userformu hneď?
Ako sa bunky prefarbujú, manuálne alebo pomocou PF?
A to makro nemôžete poskytnúť?
Inštalovali sa aktualizácie? Skúste posledné za ten mesiac odinštalovať (on ich potom neskôr znovu ponúkne).
Nie je príliš zaplnený disk? Vtedy PC dosť laguje a to najme pri práci so súbormi ale aj odkladaním RAM do PageFile na disku.
Neprebieha práve nejaká príprava na Update? Rozbaľovanie v pozadí, ktoré žerie RAM, SSD, CPU?
Nebeží plánovaná kompletná AV kontrola?
Skúsil by som dočasne zastaviť službu SysMain, ktorá robieva problémy.
Čo hovorí na vyťaženie Správca úloh (CPU, SSD, RAM) ?
Nič iné sa na PC nespomalilo?
Nevisí tam aktualizácia Office (Súbor - Konto - Možnosti aktualizácie - Aktualizovať) ?
...
EDIT OT:
Ak máte klasický HDD, a ten má "šindelový" formát zápisu SMR, a začal presúvať dáta, tak na veľkom HDD pri veľa zmenách aj niekoľko dní mu bude trvať reštrukturalizácia dát, a Vy budete mať skoro nepoužiteľný PC. Ale to by bol vplyv na všetko, nielen na jedno makro. Dnes ak nie SSD ale HDD, tak určo systém zápisu CMR.
Všetko sa vypočítava na základe čísla riadku (mená, dátumy, z toho sa odvodzuje aj podm. form.). Môžete kopírovať celé tabuľky (od šedej nadhlavičky po posledný riadok na meno) ako chcete, len musí byť dodržané riadkovanie ako teraz, teda tabuľka vysoká 27 riadkov, zmena dátumového rozsahu o +7 je každých 54 riadkov, mená začínajú na 8. riadku tabuľky.
ALE.
To vyzerá, akoby ste tú tabuľky tlačil každý mesiac. Načo potom tie problémy, veď 4 týždne sa dajú urobiť aj manuálne PF. Alebo bude pod sebou tých mesiacov viac? To príloha samozrejme neodhaľuje, ani popis. Na celý rok? Teda od 1.1 - 31.12? Alebo na školský rok? To je veľký rozdiel v počítaní dátumov.
Tou prílohou som myslel trochu reálnejšiu prílohu aj s popisom. Aj tie sviatky som si musel ešte sám dorobiť.
Ľudia, ľudia...
EDIT:
A áno, že sa jedná o školské týždne som si prečítal, no to neznamená, že musia byť v tabuľke na oba roky, lebo tabuľka vyzerá, že sa tlačí a podpisuje - keďže je tam políčko podpis na každý deň.
Skúste, teraz som oba súbory prerobil, aby to boli naozaj dátumy.
Makro mám prerobené. Ale. Problémom bude ten dátumočas. V aktualizačnom aj aktualizovanom súbore sú dátumočasy vyplnené ako dátumočas, inak sú bunky v stĺpci ako text. ADO načíta všetko ako text. Pri kontrole teda eviduje nerovnaké hodnoty, a započíta do zmenených. Lenže preuloží ich ako text.
Otázka teda znie: Môže nastať, že v stĺpci "čas" bude aj iná hodnota ako dátumočas alebo prázdny text? Budem to musieť totiž vždy testovať a prevádzať na dátumočas. Prečo nieje teda celý stĺpec "čas" ako formát dd.mm.yyyy hh:mm:ss ale je v prázdnych ako "Text" ???
Priložte nejakú anonymizovanú prílohu, nech si to nemusíme najskôr všetko vymýšľať, predstavovať a vytvárať, aby sme to mohli vôbec vyskúšať riešiť či poradiť...
To makro žiadne zarovnanie neovplyvňuje. A ani nemusí. To si urobte na tú oblasť L4:L1000003 iba raz manuálne.
Bez skúšania od boku:
Namiesto
ReDim Datova_oblast(1 To UBound(Sledovana_oblast), 1 To 2)
dajte
Datova_oblast = .Range("K4:L100003").Value
With wsSouhrn 'Jméno listu
tam máte zbytočne ak ho nepožijete, takže zmeňte
Sledovana_oblast = wsSouhrn.Range("O4:O100003").Value
na
Sledovana_oblast = .Range("O4:O100003").Value
a
With wsSouhrn.Range("K4")
na
With .Range("K4")
@lubo: nefunguje to správne, ak sa niekde v texte nachádza číslo bez ohraničujúcich "[]" pred číslom v "[]", nájde to samostatné číslo, nie to v "[]".
Napr.:
Vojta 123 Pavel Miroslav Libor [12345] Marek
nájde to 123 namiesto 12345.
Ten zložitejší pattern z GPT vráti správne 12345 v oboch prípadoch.
EDIT:
Ale dá sa to skrátiť s tým /d+
=REGEXEXTRACT(E1;"(?<=\[)\d+(?=\])";0)
Presné použitie nevieme, takže to necháme na užívateľovi.
Zdravím Admina/Správcu.
Bolo by možné vrátiť na stránku vpravo zoznam posledných príspevkov, tak ako do bolo do nedávna? Prosím ...
Alebo:
=REGEXEXTRACT(E1;"(?<=\[)[0-9]+(?=\])";0)
Ale na ten regulárny výraz, som sa už musel spýtať ChatGPT
napr.
=REPLACE(LEFT(E1;FIND("]";E1)-1);1;FIND("[";E1);"")
=NAHRADIT(ZLEVA(E1;NAJÍT("]";E1)-1);1;NAJÍT("[";E1);"")
Nemôžete použiť
.Cells(MaxRadek, 1).Value = .Cells(1, 5).Value
lebo sa bodkovou notáciou vo vnútri With odkazujete na List2 (aj pred "=" a za ním). Musíte to upraviť
.Cells(MaxRadek, 1).Value = List1.Cells(1, 5).Value
alebo to dajte do jedného hromadného zápisu
.Cells(MaxRadek, 1).Resize(, 3).Value = Application.Transpose(List1.Range("E1:E3").Value)
ešte poznámka: v tomto jednoduchom makre nepoužívajte
Application.ScreenUpdating = False
bez vypínania a zapínania ScreenUpdating je makro pri hromadnom zápise rýchlejšie.
A čo použiť OnTime?
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.