Excel hell

IceCub

Membru Senior
Salutare,

Se deschide un workbook cu filtre pe coloane in Excel, se apasă "Clear filters" => Excel înțepenește/crapă. Problema se manifesta cu fișiere multiple, pe sisteme multiple cu OS Win7&10 si Office 2010/2013.

M-a adus la exasperare!
Idei?
 
Eh, am avut niște Excel-uri la care dura între 40 de secunde și 2 minute să facă refresh la un worksheet, după modificarea unor filtre. Cauze:
  • celule cu conținut mare (aveam o coloană cu comentarii, istoricul complet al progresului unor proiecte de la o săptămână la alta timp de 3-9 luni, multe celule aveau lejer peste 16k caractere) - fă trim la text;
  • conditional formatting - scoate din reguli dacă poți
  • formule cu calculare automată - oprește calcularea automată a formulelor și dai din când în când F9/calculate all/refresh all
  • worksheet-uri cu conexiuni spre alte fișiere/baze de date cu latență mare la acces (alte worksheet-uri în fișiere mapate undeva în rețeaua care merge ca o mortăciune, sau la tabele din ceva bază de date Access) - vezi ce Connections sunt active și cum sunt setate să se actualizeze datele.
Mai poți verifica faptul că Excel rulează multithreading, nu e întotdeauna activ: File - Options - Advanced - Formulas - Enable multi-threaded calculations, use all processors on this computer. Dar asta nu prea face mare brânză, Excel e încă destul de prost optimizat.

Worst case scenario, transpune valorile și refă formulele în alt worksheet, fiindcă porcul de Excel mai ține în fișier și bălării care ar fi trebuit șterse de mult.
 
Fișierul nu e foarte mare și are doar câteva mii de înregistrări (~3MB). System: i7 + 8GB + SSD cu multithreading activ în Excel.

Win 7 + Office 2013 (x64) => freeze
Win 10 + Office 2013 (x64) => freeze
Win 10 + Office 2013 (x64) (Excel în safe mode) => no problem
Win 10 + Office 365 => no problem (asa va rămâne!)

Am încercat sa scot Add-Ins, disable hardware graphics acceleration, fără nici un efect. Culmea este ca în momentul în care Excel îngheață systemul șomează (nu are activitate nici CPU nici SSD), iar (uneori) Excel pot sa-l închid normal.

Nasol e ca aceeași problema se manifesta pe multe systeme (în general sunt Win7 + Office 2010/2013 - toate cu update-uri/drivere la zi) și ma exasperează.

Pe unele systeme am reușit sa scap de problema cu tweak-uri în registry (DisableUIA=1), pe altele tweakurile nu au efect.

Am sa incerc si conditional formating/calculare automata a formulelor dar sper ca solutia Win10 + Office 365 ca fie universal valabila - astfel as grăbi și trecerea la Win 10.
 
Nu cumva se deschide vreo fereastra de confirmare care in loc sa apara in prim-plan, e undeva ascunsa pe sub excel?
Incearca cu o fereastra excel facuta mica intr-un colt de ecran.
 
Cine să deschidă ferestre și ce confirmare să urmeze după o schimbare de filtre? Nu prea pari să fi lucrat cu Excelul...
 
Ai dreptate. Dar simptomele corespund cu alte situatii cand vreun program aparent se bloca fara sa faca nimic, el de fapt asteptand sa fac clic pe un OK care nu se vedea.
 
Bine, așa la modul general sunt multe lucruri posibile, dar practic n-am întâlnit încă în Excel vreun dialog care să apară separat de fereastra program. Never ever ever ever. Ever. De altfel e o scârbă complicată să faci Excel-ul să funcționeze în thread-uri separate pentru fișiere separate, ca să ai două instanțe de program pe 2 monitoare separate, de exemplu. Fiindcă Microsoft Știe Mai Bine (TM) și totul se întâmplă într-o singură fereastră de aplicație.
 
Oh, de cate ori nu m-am trezit cu Excel-ul blocat din cauza de ferestre de dialog aparute prin locuri ciudate, gen pe alt monitor sau in background fara sa reactioneze la alt-tab, si le gaseam doar minimizand toate aplicatiile de pe ecran ...
La un moment dat am facut si eu asta involuntar din VBA, dar m-am prins suficient de repede sa nu mai fac asa ceva. Nu stiu daca toti scriitorii de scripturi in VBA s-au prins de asta.
 
Astăzi a reapărut problema, asa ca am luat fișierul în sine la puricat, am scos formatări, culori, conditional formating,etc. Momentan funcționează... nu știu pentru cat timp...
Mi se pare absurd ca o aplicație esențială, dintr-o suita business, în anul 2017 sa facă astfel de probleme. O căutare pe Google după problema în cauza confirma ca nu sunt nebun (pana și pe site-ul MS e plin thread-uri în care oamenii se plâng de asta).

Nu era vorba de scripturi vba sau ferestre de dialog pitite pe undeva și fișierul avea doar câteva mii de înregistrări (~ 3MB). La naiba, am prelucrat fișiere de sute de MB în Excel de ajunsesem sa descopăr ca exista o limita a numărului de rânduri într-un worksheet (puțin peste 1 milion).

La un moment dat, astăzi, ajunsesem sa cochetez cu ideea de LibreOffice/OpenOffice în condițiile în care am > 200 licențe Office de la MS. Ma gândeam sa sun la suport, dar gândul ca ajung pe mana vreunui indian care sa ma interogheze supa un script mi-a tăiat cheful.
 
Sistemul tau nu e destul de performant. Mai pune-i RAM, schimba procesorul, etc... Asta-i trendul. :biggrin: :dracu: Peste un an nimic nu va mai functiona cu mai putin de 1TB de ram. :biggrin:
 
Dezgrop topicul pentru ca în seara asta am avut o revelație.

Analizam unul din fișierele excel cu probleme în care scrollingul era exasperant de greu (în condițiile în care nu era decât text chior în celule, fără nici un fel de formatare).
Din fișierul original de (~2.5MB) am transferat datele (copy/paste) într-un alt fișier excel, a cărui dimensiune sa redus la 800KB :insane:
Am zis ca nu se poate, aceleași date/formule/formatare, nu are cum sa fie fișierul de 4 ori mai mic.

Deschis fișierul original, ma duc în Home -> Find & Select -> Go to Special și aleg Objects. Încep sa apară sute și sute de chenare transparente pana crapă Excel. :eek:
Erau asa de multe ca nu le puteam selecta/șterge - a trebuit sa apelez la un script VBA sa-mi rezolve problema:

Sub DeleteShapes() Dim Shp As Shape For Each Shp In ActiveSheet.Shapes Shp.Delete Next Shp End Sub

Acum rămâne sa descopăr de unde/cum au apărut toate mizeriile alea.

P.S. Fun fact:
Un fișier *.xlsx se poate redenumi în *.zip, după care se deschide cu orice arhivator. In folderul xl\drawings erau trei *.vml (desenele in sine) si doua *.xml (presupun cu pozițiile în care trebuiau inserate) - de remarcat dimensiunea fișierelor xml.
xl.PNG
 
Last edited:
Arunc o ipoteză că datele din fișier au fost luate cu copy&paste din ceva site, unde nu erau sub formă de tabel sau date frumos formatate, ci sub formă de input box-uri, deci fiecare cu un chenar. Excel s-a descurcat cum a putut ca să rețină informația completă, dacă userul nu știe să dea Paste > Text only... Copy&paste are un comportament dubios mai ales din Internet Explorer în Office, iar cum IE e unealta corporate de bază...
 
Back
Top