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
Excel - makro na zálohu jednou denně při prvním uložení Vyřešeno
-
- Pohlaví:
Re: Excel - makro na zálohu jednou denně při prvním uložení Vyřešeno
Nejsem sice žádný přeborník na makra, ale mohlo by to (snad) být nějak takhle:
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.
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.
Re: Excel - makro na zálohu jednou denně při prvním uložení
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
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
-
- 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
-
-
- 2
- 12236
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 4796
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 8 hostů