Excel - makro na zálohu jednou denně při prvním uložení Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

birgis
nováček
Příspěvky: 36
Registrován: březen 11
Pohlaví: Muž
Stav:
Offline

Excel - makro na zálohu jednou denně při prvním uložení

Příspěvekod birgis » 11 srp 2013 18:40

Ahoj znovu

tentokrát bych moc ocenil pomoc s makrem, které by každý den při prvním uložení vytvořilo zálohu do složky backup\rok_mesic\
Soubor se několikrát denně otvírá, ukládá a proto jen při prvním uložení každý den.

Moc děkuji všem za pomoc

Reklama
Uziv00
Pohlaví: Nespecifikováno

Re: Excel - makro na zálohu jednou denně při prvním uložení  Vyřešeno

Příspěvekod Uziv00 » 11 srp 2013 22:20

Nejsem sice žádný přeborník na makra, ale mohlo by to (snad) být nějak takhle:

Kód: Vybrat vše

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Set fso = CreateObject("scripting.filesystemobject")
' vytvoreni nazvu souboru
Mesic = Month(Now())
If Den < 10 Then Den = "0" & Den
If Mesic < 10 Then Mesic = "0" & Mesic
Namefile = Den & "Jméno_souboru.xls"

' adresar existuje? If not - create
cesta = "D:\backup\" & Year(Now()) & "_" & Mesic & "\"
If (Not fso.FolderExists(cesta)) Then fso.CreateFolder(cesta)

' existuje jiz zaloha?
plne = cesta & Namefile

If Not fso.FileExists(plne) Then
ActiveWorkbook.SaveCopyAs Filename:=plne
End If
End Sub

Mělo by to pracovat asi tak, že při uložení si makro vytvoří jméno souboru i adresáře kopie, zkontroluje, zda existuje adresář a když ne, vytvoří ho. Jméno adresáře je D:\backup\RRRR_MM, jméno souboru DDJmeno_souboru.xls. Poté zkontroluje, zda kopie již existuje, pokud ne, provede uložení kopie. protože aktuální den je v názvu souboru, bude každý den vytvořena jen jedna kopie a to při prvním uložení souboru.
Snad tě to nějak navede.

birgis
nováček
Příspěvky: 36
Registrován: březen 11
Pohlaví: Muž
Stav:
Offline

Re: Excel - makro na zálohu jednou denně při prvním uložení

Příspěvekod birgis » 12 srp 2013 19:54

Ahoj,

Moc děkuju, funguje to jak má, jen jsem se chvíli trápil, než jsem přišel na to, že to musím vložit do ThisWorkBook a ne jako modul.
A ještě jsem tam provedl drobnou opravu před řádek Mesic = Month(Now()) jsem vložil Den = Day(Now())

Kdyby to pomohlo i někomu jinému:))

Díky moc za pomoc


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Notebook BSOD 1-2x denně Příloha(y)
    od Gerete » 29 bře 2025 20:26 » v BSOD (Blue Screen Of Death)
    11
    7585
    od atari Zobrazit poslední příspěvek
    01 dub 2025 12:37
  • Jak použít zálohu z CodePen na ChatGPT?
    od Minapark » 01 led 2025 18:48 » v Programování a tvorba webu
    1
    1859
    od Minapark Zobrazit poslední příspěvek
    06 led 2025 08:08
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4820
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12236
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4796
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů