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

Předmět Autor Datum
Zkus nastavit posledni parametr OpenAfterPublish:=False Třeba je Office 2016 tak aktivní, že se to s…
Jan Fiala 20.07.2016 08:25
Jan Fiala
Bohužel beze změny...
Slepejš 20.07.2016 08:32
Slepejš
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ě…
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…
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ě...…
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…
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…
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…
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