Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Excel 2016 - chyba při ukládání dokumentu

Zdravím,
mám excelovský soubor s uložením aktuálního listu do PDF přes tlačítko na listu. Soubor byl vytvořen v Excelu 2013 a s Windows 7 fungoval bezproblému. Po aktualizaci na Windows 10 + Office 2016 se velmi často objeví chybová hláška

Run-time error '1004':
Dokument nebyl uložen. Možné příčiny: Dokument je otevřen nebo došlo při ukládání k chybě.

kód pro ukládání:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\cesta\" & JmenosDatumem & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

někdy dokument uložit jde jednou, někdy ani to ne, výsledný pdf soubor není nikde viditelně otevřen.
Díky

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
JmenosDatumem je čo? Skús to dať preč Skús pozrieť aj sem, je tam zopár tipov http://www.mrexcel.co…
čitateľ 20.07.2016 09:15
čitateľ
JmenosDatumem je proměnná, podle které se tvoří název souboru - ta funguje Podle odkazu, jsem zkusil…
Slepejš 20.07.2016 09:43
Slepejš
nemá ten dátum iný formát? no asi nie.. ale aj tak by som tam dal pevný názov a keď tak, trocha to p…
čitateľ 20.07.2016 10:34
čitateľ
Díky, ale obávám se, že tudy cesta nepovede. Pevný název není možný, ale v tomto chyba nebude, promě… nový
Slepejš 20.07.2016 11:29
Slepejš
Na internetu je dotazů k tomuto problému celkem dost, ve většině případů bylo poskládaný špatně jmén… nový
Machr55 20.07.2016 12:03
Machr55
Takto vypadá kód tlačítka, neříkám, že je to stoprocentně programátorsky, ale fungovalo bezchybně...… nový
Slepejš 20.07.2016 12:27
Slepejš
Třeba se ten příkaz FORMAT pro některá data chová divně. U MS bych se ničemu nedivil... Když to mak… nový
Machr55 20.07.2016 12:40
Machr55
Tak řekl bych, že je chyba někde v samotném Excelu, nebo spíš v jeho spojení s Microsoft Office Uplo… nový
Slepejš 21.07.2016 07:39
Slepejš
Aha, takže ty používáš Microsoftí OneDrive? A jsi k němu stále připojený a máš nastavenou synchroniz… nový
Machr55 21.07.2016 08:32
Machr55
No...já...já nic :-) Na ty synchronizace se mrknu, jestli se k něčemu dopracuji, tak dám vědět, zatí… poslední
Slepejš 21.07.2016 08:48
Slepejš

JmenosDatumem je proměnná, podle které se tvoří název souboru - ta funguje
Podle odkazu, jsem zkusil zařadit příkaz On Error Resume Next který sice chybovou hlášku nezobrazí, ale dokument se stejně neuloží, buď je špatný příkaz k uložení, nebo v nových Office něco někde nepovolené, ani v jednom případě mi není jasné, proč soubor jde "někdy náhodně" správně uložit, po prvním zobrazení chyby už ne, přijde mi, že je soubor někde zamčený v cache, ale nevím čeho se chytit...

nemá ten dátum iný formát? no asi nie.. ale aj tak by som tam dal pevný názov
a keď tak, trocha to prerobiť, namiesto activesheet dať sheet(1), neukladať sheet ale workbook, trebárs najprv uložiť do iného xlsx, ten otvoriť a uložiť ako pdf
postupnými krokmi na to možno prídeš

Díky,
ale obávám se, že tudy cesta nepovede. Pevný název není možný, ale v tomto chyba nebude, proměnná funguje, ukládat sheet musím - ukládám list z databáze, ne celou databázi, jak říkám, v předchozí verzi bezproblému uložil mnoho tisíc takových dokumentů, blbne až po aktualizaci a náhodně, ne že by to nefungovalo vůbec.

Na internetu je dotazů k tomuto problému celkem dost, ve většině případů bylo poskládaný špatně jméno souboru. Když to makro breakneš na tom řádku, který hází chybu a vypíšeš si v okně

? "C:\cesta\" & JmenosDatumem & ".pdf"

dostaneš opravdu plnohodnotné jméno souboru s cestou? Nemáš totiž uvedeno, jak tu proměnnou "JmenosDatumem" plníš. Klidně může jít o nějakou novou fičuru nových verzí Windows (třeba někde v konverzi datumu na text přibyla mezera nebo podobná vychytávka).

Takto vypadá kód tlačítka, neříkám, že je to stoprocentně programátorsky, ale fungovalo bezchybně...

Private Sub CommandButton1_Click()
FJmeno = Sheets("skutecny nazev listu").Range("I11").Text
JmenosDatumem = FJmeno & Format(Now, "-yyyy-mm")
 If Range("I5") = "" Then
 Exit Sub
 Else
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\skutecna cesta\" & JmenosDatumem & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
 End If
End Sub

Kdyby to nefungovalo vůbec, pochopím nějakou fičuru, ale dva dokumenty to uloží a třetí hodí chybu?

Třeba se ten příkaz FORMAT pro některá data chová divně. U MS bych se ničemu nedivil...

Když to makro breakneš na tom řádku, který hází chybu a vypíšeš si v okně

? "C:\cesta\" & JmenosDatumem & ".pdf"

dostaneš opravdu plnohodnotné jméno souboru s cestou?

... nebo si to plné jéno vypiš v msgboxu.

Tak řekl bych, že je chyba někde v samotném Excelu, nebo spíš v jeho spojení s Microsoft Office Upload centrem, případně se sdíleným úložištěm Onedrive. Pokud chci uložit jakýkoliv dokument v Excelu jako PDF, vyhodí též chybu, že dokument nemůže uložit, zase - někdy uloží, někdy ne, ale hlavně že je všechno "zálohované", blil bych na to:-(

Aha, takže ty používáš Microsoftí OneDrive? A jsi k němu stále připojený a máš nastavenou synchronizaci?
Pak si dokážu představit, že to může zlobit (Excel vytvoří soubor PDF -> synchronizátor jej okamžitě začne očuchávat -> zápis Excelu do tohoto souboru selže, protože si jej ten synchronizátor asi zamčel nebo něco takovýho). To by vysvětlovalo, že to někdy projde a někdy ne - záleží asi na tom, jak rychlý je ten synchronizátor a zda se Excelu podaří zapsat vše, než to ten synchronizátor zpozoruje ...

Zpět do poradny Odpovědět na původní otázku Nahoru