Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: so červenec 13 2013, 9:09 Předmět: EXCEL 2010 - Microsoft Excel přestal pracovat
Mám problém s uložením souboru v EXCEL 2010 pod W8 a potřeboval bych nějakou radu co s tím.
Již řadu let používáme poměrně složitou transformaci založenou na Visual Basic, která z textového souboru chybových dat, stažených z řídícího systému zařízení, vytvoří přehlednou tabulku v EXCEL, kde se dají data dále snadno analyzovat.
Transformace byla vytvořena v EXCEL 2003. Později byla upravena tak, aby běžela ve stejné aplikaci v EXCEL 2003 i EXCEL 2007. Prakticky je využívána jen pod Windows XP. Nyní upravuji aplikaci tak, aby pracovala také v EXCEL 2010 v prostředí W8.
Po proběhnutí celého procesu transformace v soustavě Maker ve Visual Basic je v závěru jednoduchá instrukce pro uložení výstupního souboru
'Poslední uložení souboru
ActiveWorkbook.Save
V EXCEL 2010 pod W8 se v průběhu ukládání často náhle zobrazí hlášení "Microsoft Excel přestal pracovat", pak zpráva o "hledání řešení problému" a nakonec "restartování EXCEL" s nabídkou uložení obnoveného výstupního excelovského souboru v požadovaném názvu i původního transformačního excelovského souboru.
Výstupní soubor přitom již najdu řádně uložen bez koncovky xls pod nějakým jménem např. "B6E22000" nebo třeba "A1D42000". Pokud názvu doplním příponu xls, je to ten požadovaný ukládaný výstupní soubor. Jen je uložen pod nějakým vnitřním kódem Windows a bez koncovky.
Záhadou je, že k tomu přerušení ukládání dojde jen občas, obvykle několikrát po prvním otevření a spuštění transformace, a pak již běží ukládání a celá transformace normálně. Pokud výstupní soubor otevřu a ukládám ručně, vše běží vždy normálně. Tak předpokládám, že je to nějaký problém při ukládání pomoci té instrukce ve VB.
V EXCEL 2003 a 2007 k tomu nikdy dosud nedošlo.
Potřebuji nakopnout, kde by mohla být příčina tohoto jevu. Už si s tím dost dlouho hraji a již mne nic jiného nenapadá než, než požádat o radu, abych nebyl zaslepen, a nebloudil kolem jednoho místa.
Zkusil bych kouknout na oprávnění adresáře,kam se ukládá.Jako další bych zkusil spouštět EXCEL 2010 s admin právy.Kouknul bych i na nastavení samotnáho EXCELu.Když by nepomohlo,odinstaloval bych EXCEL,vymazal zbytky a znovu nainstaloval.Pokud by nepomohlo ani to,zkusil bych nějaký free nástroj (třeba open office).
Kdybych tohle řešil já,napsal bych si program,který by z toho *.txt souboru vytvořil *.xls,případně pokud to není třeba později editovat,ukládal bych to do *.pdf případně jiného formátu souboru.
Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: so červenec 13 2013, 12:46 Předmět:
Pracuji v kompatibilním režimu, protože potřebuji, aby stejná aplikace běžela také pod EXCEL 2003 a 2007. Když tutéž aplikace spustím přes XP v EXCEL 2003 nebo 2007, projde vždy naprosto bezchybně.
Záhadou mi zůstává, proč k tomu přerušení práce Excel 2010 při ukládání dojde jen občas a jen při závěrečném uložení těsně před ukončením transformace. Zhruba bych řekl, že z 10 spuštění transformace to závěrečné uložení 6x to projde bezchybně a 4x se Excel u toho zastaví. Zatím se mi nepodařilo najít nějakou souvislost mezi normálními průchody nebo naopak průchody se zastavením Excel. Zdá se, že to po prvním spuštění transformace končí několikrát chybně, a pak se to nějak chytí, ale není to pravidlo. Takový projev Excelu se objevuje jen u této aplikace. Při běžném a častém používání Excelu a ručním ukládání se mi to nikdy nestane. Takže mne nenapadá žádná souvislost s instalací Excel a jeho případnou přeinstalaci nebo jeho nastavením.
Ta transformace není jednoduchý převod txt souboru do xls. Podle vnitřních algoritmů, naprogramovaných ve Visual basic, se přiřazují zkratkám poruchových kódů plné texty, vypočítává se statistika četnosti výskytu poruch a stavů a statistiky se převádějí navíc do přehledných grafů. Zakódované údaje různých fyzikálních hodnot v TXT souboru se přes vzorce převádějí do reálných jednotek, atd. atd.
Výsledek nemůže být v PDF, protože výstupní EXCEL soubor má přednastaven automatický filtr s možnosti třídění a výběru dat podle jednotlivých datových sloupců. To je potřebný silný nástroj pro analýzu dat, kvůli kterému byla transformace vytvořena.
Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: so červenec 13 2013, 16:03 Předmět:
V dotaze nejde o funkci transformace, ale proč je v EXCEL 2010 nespolehlivá jednoduchá operace uložení souboru.
Program Excel a uspořádaný soubor Maker ve Visual Basic byl pro transformaci zvolen z toho důvodu, že pro většinu servisních techniků jako potencionálních uživatelů této transformace je Excel legálně k dispozici v jejich firemních počítačích nebo NTB.
V době vzniku transformace měla většina počítačů jen Excel 2003 a XP. Nyní je škála SW různorodá od Excel 2003 a XP ač po Excel 2010 nebo 2013 a W8. Proto je snaha vytvořit a mít transformaci, která v jediné verzi funguje na všech dostupných platformách Ecxel a Windows.
Zdá se, že se rozdíly mezi "ročníky" Excel daří úspěšně řešit. Jen zatím marně bojuji s tím, proč se nedaří v Excel 2010 spolehlivé vyřešit to uložení výsledného souboru jako xls souboru, tj. ve formátu 2003/2007.
Nejde ta jednoduchá instrukce pro uložení souboru napsat nějak jinak, aby si s ní EXCEL 2010 spolehlivě poradil a nedělal psí kusy ve formě hlášky "Excel přestal pracovat"?
Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: so červenec 13 2013, 17:24 Předmět:
SDZ napsal(a):
...V tom případě je jedná o zcela jednoduchý progámek.Je potřeba pouze vědět jak má fungovat , trocha znalosti programováni a čas.....
Myslím, že zcela jednoduchý prográmek by to nebyl. S ostatním souhlasím, že to chce znát požadované funkce, umět programovat a mít na to čas. Výstupní soubor xls po transformaci má 7 listů, z toho jeden s uspořádanými vstupními daty, jeden list se statistikou, 3 listy grafů ze statistiky a dva listy s technickými informacemi pro technika. Takže ukládaný xls soubor je dost obsáhlý a má podle množství dat kolem 950kB délku. Navíc se vygenerují automaticky Makra a jejich ovládací tlačítka pro usnadnění práce s výstupním souborem. Příklady vstupních dat a výstupních listů jsou jako obrázky GIF v příloze. Možná mohou být tyto příklady inspirací pro nalezení důvodu nespolehlivého ukládání souboru.
Jinak, jak jsem napsal, nejde o vlastní funkce a algoritmy, ale jen o jedinou sekvenci ve VB spočívající uložení výstupního souboru, která děla problémy.
Hláška typu 'Excel přestal pracovat' předpokládám ,že může nastat i při ukládání dat s časově náročným výpočtem ,jinak při zacyklení. VB nedělám.
Zkusil bych do kódu něco jako Application.processmessages.
Vzhledem k tomu že to pod XP funguje,prošel bych celý zdrojový kód programu a zkontroloval kompatibilitu s W8.
Jinak k funkčnosti programu -na první pohled je čten zdrojový soubor po řádcích.Každý řádek se parsuje.Texty chyb jsou jako konstanty.Nepřipadá mi to nijak složitý,ale práci by to určitě dalo.Pro export do XLS jsou u vyšších programovacích jazyků knihovny ,které značně zjednodušší převod dat do XLS.
Ještě mě napadlo jestli by nefungovala pod W8 movější verze EXCELu,ale záleží na kompatibilitě maker.
Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: so červenec 13 2013, 21:56 Předmět:
Zkusil jsem po restartu PC ihned po otevření transformačního Excelu před instrukci pro uložení souboru vložit pauzu 6 sec pomoci sekvence, kterou jsem opsal na nějakém fóru o excel (pro tuto zkoušku jsem také textové poznámky zkopíroval bez úpravy, proto jsou CZ/Anglicky):
'pausa 6 sec na uložení souboru aby se nezastavil Excel 2010 pod W8
Dim PauseTime2, Start2, Finish2, TotalTime2
PauseTime2 = 6 ' Čas pauzy.
Start2 = Timer ' Spuštění časovače.
Do While Timer < Start2 + PauseTime2
DoEvents ' Yield to other processes.
Loop
Finish2 = Timer ' Zastavení časovače.
TotalTime2 = Finish2 - Start2 ' Calculate total time.
'Poslední uložení souboru
ActiveWorkbook.Save
Dvakrát proběhla transformace úspěšně i s uložením, už jsem se chtěl radovat. Potřetí opět hláška "Excel přestal pracovat" . To je fakt záhada proč to dělá, a co s tím.
Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: ne červenec 14 2013, 19:08 Předmět:
Dočasně jsem to vyřešil tak, že jsem ten příkaz pro uložení souboru vymazal z makra, takže po transformaci je výstupní soubor otevřený, ale neuložený. Uživatel jej může uložit ručně, to funguje bez problému a Excel pak funguje korektně.. Pokud by na to zapomněl, Excel ho upozorní, že není uložený. Pokud by jej uživatel zavřel bez uložení a tím vymazal, má možnost si provést transformaci opakovaně ze vstupního TXT souboru.
Takhle se s tím dá fungovat shodnou aplikaci pod Excel 2003, 2007 i 2010. Nikdo není dokonalý, ani Microsoft.
Pokud později někoho napadne lepší řešení problému, rád je přijmu.
Já jsem se učil VBA tak, že jsem si spustil záznam makra a pak jsem se podíval, jak to chlapci z Redmondu přeložilo do kódu.
Takže moje rada - zapněte si před finálním ručním uložením souboru záznam makra, soubor uložte, vypněte záznam, mrkněte do makra a to co tam vidíte zkuste zkopírovat do původního makra.
To by v tom byl čert, aby to nechodilo. Jinak bych ještě zkusil ukládat buď jako *.xls, nebo *.xlsx.
Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: út červenec 16 2013, 19:09 Předmět:
To Petr Filipi tohle vše už jsem zkusil. Instrukce pro uložení je přesně stejná jak pro ruční uložení napíše záznam Makra. Také jsem se hodně sekvencí ve VB naučil ze záznamu Makra. Zkusil jsem automatické uložení udělat jako samostatné Makro. Zkoušel jsem jiné psí kusy. Nic nepomáhá, v EXCEL 2003 nebo 2007 se záznam vždy uloží spolehlivě. EXCEL 2010 nahodile při ukládání ukončí činnost.
A dělá to to samé i na jiném PC nebo na stejném PC v jiném uživatelském profilu?
Co kdybyste vygeneroval podobné množství dat nějakou náhodnou funkcí a zkusil je uložit?
Ukládáte to v 2003, 2007 i ve 2010 pořád ve stejném formátu (*.xls), nebo to třeba v 2010 ukládáte jako *.xlsx?
Když to ukládá, podívejte se na využítí paměti ve správci úloh. Jednou jsem se dostal s mým makrem na neuvěřitelný 1GB zabrané RAM. Běží i po pádu Excelu proces Excel.exe?
Já mám taky v NB Office 2010 a nikdy se mi nepodařilo ho dlouhodobě při ukládání odstavit. Stane se mi třeba při zpracovávání 80.000 řádků, že mi to přestane do buňky A6 vypisovat číslo záznamu, který se právě zpracovává (taky náhodně, někdy to skončí u 10.513, jindy u 18.423 - ale to mi neva, mám to tam jako jakousi kontrolu běhu programu a dokonce tam mám i příkaz na update obsahu buňky), ale po čase se makro dokončí, obsah buňky A6 se zaktualizuje a je hotovo.
Založen: Nov 07, 2005 Příspěvky: 1535 Bydliště: Studénka
Zaslal: st červenec 17 2013, 18:52 Předmět:
Již jsem výše uvedl, že chci, aby transformační program pracoval v jedné verzi pro EXCEL 2003, 2007 i 2010. Proto používám jen koncovku XLS a v EXCEL 2010 program běží v kompatibilním režimu.
Také jsem uvedl, že po hlášce "EXCEL přestal pracovat" se Excel restartuje a nabídne uložení výstupního souboru pod názvem, které vygeneruje jedno z maker. Celá transformace probíhá tak, že se spustí základní makro transformačního programu, které načte vstupní TXT soubor na nový list. Pak probíhá sekvence mnoha maker jako podprogramu hlavního makra, která provede celou transformaci, takže vstupní EXCEL se stane sám výstupem transformace.
Po zastavení EXCEL je však již výstupní soubor uložen pod nějakým vnitřním názvem Microsoftu.
Je mi naprosto nepochopitelné, že stejný transformační EXCEL a stejná vstupní data někdy projdou bez zastavení při ukládaní, a vzápětí se tento úkaz projeví.
Transformace v EXCEL 2003 a 2007 probíhá bez problémů na desítkách PC u techniků, kteří transformaci používají. Pod EXCEL 2010 na W8 to zkouším zatím jen u sebe na svém PC. V řadě funkcí, jako např. čísla generovaných tlačítek maker, se liší mezi Excely, a proto je nutno naprogramovat výhybky v chodu programu, aby VB nehlásil chybu. To zastavení však není chyba VB, ale je to něco co zatím neumím vysvětlit.
Na to využití paměti při ukládání se podívám až příští týden. Jsem na chatě a zde mám k dispozici jen EXCEL 2003 a XP. Také mám zde omezený pčístup na internet přes mobil.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.