Zdravim všechny, potřeboval bych poradit. Je možný vytvořit kopii excel, nebo word souboru do jiné složky tak, že pokud provedu nějakou změnu v originále, promítne se mi do kopie? Díky
//podle pravidel by měl název co nejpřesněji popisovat podstatu dotazu
//změna původního názvu Duplicita souboru
//mmm
Automatické provádění změn v kopii v souhlasu s originálem
- mike007
- Master Level 7.5
- Příspěvky: 5860
- Registrován: srpen 07
- Bydliště: Pardubice
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Automatické provádění změn v kopii v souhlasu s originálem
Ano, to lze.
Lze napsat makro, které by při každém uložení originálního dokumentu vytvořilo novou kopii, tzn. přepsalo tu starou.
Lze napsat makro, které by při každém uložení originálního dokumentu vytvořilo novou kopii, tzn. přepsalo tu starou.
Nejlepší hra je Excel!
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
Re: Automatické provádění změn v kopii v souhlasu s originálem
Makra nejsou moje silná stránka, můžeš mi, prosím, poradit postup? Díky
- mike007
- Master Level 7.5
- Příspěvky: 5860
- Registrován: srpen 07
- Bydliště: Pardubice
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Automatické provádění změn v kopii v souhlasu s originálem
Otevři Excelový dokument, na který chceš vytvářet zálohu a přejdi do prostředí VBA (kl.zkratka Alt+F11)
1. V panelu nalevo dvakrát klikni na ThisWorkBook:
3. Do prázdného okna vlož toto makro:
[syntax lang=vb filename=makro.txt]
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call zaloha
End Sub
[/syntax]
4. V menu VBA: Insert --> Module
5. Do prázdného okna vlož toto makro:
[syntax lang=vb filename=makro2.txt]
Sub zaloha()
Dim sesit As Workbook, BackupFileName As String, i As Integer, OK As Boolean
If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub
Set sesit = ActiveWorkbook
If sesit.Path = "" Then
Application.Dialogs(xlDialogSaveAs).Show
Else
BackupFileName = "zaloha.xls"
OK = False
On Error GoTo chyba
If Dir("c:\" & BackupFileName) <> "" Then
Kill "c:\" & BackupFileName
End If
With sesit
Application.StatusBar = "Vytvářím zálohu..."
.Save
Application.StatusBar = "Ukládám zálohu..."
.SaveCopyAs "c:\" & BackupFileName
OK = True
End With
End If
chyba:
Set sesit = Nothing
Application.StatusBar = False
If Not OK Then
MsgBox "Záloha nebyla vytvořena!", vbExclamation, ThisWorkbook.Name
End If
End Sub
[/syntax]
Prostředí VBA zavři klasicky křížkem v pravém horním rohu.
Nyní při každém uložení dokumentu bude vytvořena jeho záloha, která bude umístěna na C:\
Makro lze spustit kdykoliv budeš chtít, nejen tedy při ukládání. Spustíš ho klasicky ze seznamu maker (Alt+F8)
Také je zde možnost vytvářet zálohu po každé provedené změně v dokumentu. Stačí v událostní proceduře (první makro) změnit první řádek z
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) na
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range). Toto ale v případě velkých souborů nedoporučuji, protože může během vytváření zálohy docházet ke zpomalení práce. Určitě bys byl nerad, kdyby po každé změně si musel čekat třeba půl minuty než Excel vytvoří zálohu... To bys toho moc neudělal :) To bych se spíše přikláněl k tomu udělat makro, které by vytvářelo zálohu třeba každých 5-10 minut. To už se dá přežít
1. V panelu nalevo dvakrát klikni na ThisWorkBook:
3. Do prázdného okna vlož toto makro:
[syntax lang=vb filename=makro.txt]
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call zaloha
End Sub
[/syntax]
4. V menu VBA: Insert --> Module
5. Do prázdného okna vlož toto makro:
[syntax lang=vb filename=makro2.txt]
Sub zaloha()
Dim sesit As Workbook, BackupFileName As String, i As Integer, OK As Boolean
If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub
Set sesit = ActiveWorkbook
If sesit.Path = "" Then
Application.Dialogs(xlDialogSaveAs).Show
Else
BackupFileName = "zaloha.xls"
OK = False
On Error GoTo chyba
If Dir("c:\" & BackupFileName) <> "" Then
Kill "c:\" & BackupFileName
End If
With sesit
Application.StatusBar = "Vytvářím zálohu..."
.Save
Application.StatusBar = "Ukládám zálohu..."
.SaveCopyAs "c:\" & BackupFileName
OK = True
End With
End If
chyba:
Set sesit = Nothing
Application.StatusBar = False
If Not OK Then
MsgBox "Záloha nebyla vytvořena!", vbExclamation, ThisWorkbook.Name
End If
End Sub
[/syntax]
Prostředí VBA zavři klasicky křížkem v pravém horním rohu.
Nyní při každém uložení dokumentu bude vytvořena jeho záloha, která bude umístěna na C:\
Makro lze spustit kdykoliv budeš chtít, nejen tedy při ukládání. Spustíš ho klasicky ze seznamu maker (Alt+F8)
Také je zde možnost vytvářet zálohu po každé provedené změně v dokumentu. Stačí v událostní proceduře (první makro) změnit první řádek z
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) na
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range). Toto ale v případě velkých souborů nedoporučuji, protože může během vytváření zálohy docházet ke zpomalení práce. Určitě bys byl nerad, kdyby po každé změně si musel čekat třeba půl minuty než Excel vytvoří zálohu... To bys toho moc neudělal :) To bych se spíše přikláněl k tomu udělat makro, které by vytvářelo zálohu třeba každých 5-10 minut. To už se dá přežít
Nejlepší hra je Excel!
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
Re: Automatické provádění změn v kopii v souhlasu s originálem
Je to paráda, funguje to bezvadně, jen mam ještě takovou doplňující otázku. Je možný, aby kopie byla přístupná pouze pro čtení, aby uživatel neměl možnost provést změny a následně je uložit?
Jinak díky
Jinak díky
- alenka_v_říši_divů
- Level 6
- Příspěvky: 3201
- Registrován: únor 09
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
Re: Automatické provádění změn v kopii v souhlasu s originálem
http://office.microsoft.com/cs-cz/excel ... 91029.aspx zkoušel si?
Nebo co zaheslovat? Snad to platí i pro kopii. V případě války bych to řešil jednoduchou dávkou s příkazem attrib.
Ale pokud to jde, tak jistě někdo znalej excelu dá echo :)
Nebo co zaheslovat? Snad to platí i pro kopii. V případě války bych to řešil jednoduchou dávkou s příkazem attrib.
Ale pokud to jde, tak jistě někdo znalej excelu dá echo :)
Re: Automatické provádění změn v kopii v souhlasu s originálem
Zaheslovat soubor při uložení znam, já myslel, jestli to jde nějak udělat přes to makro, abych nemusel každej originál zaheslovávat.
- alenka_v_říši_divů
- Level 6
- Příspěvky: 3201
- Registrován: únor 09
- Bydliště: Brno
- Pohlaví:
- Stav:
Offline
Re: Automatické provádění změn v kopii v souhlasu s originálem
To nevím, ale viděl sem v tomto tématu dva znalce excelu a neodpověděli... takže asi tak.
Já jakožto neznalej, bych to řešil baťáky...
Já jakožto neznalej, bych to řešil baťáky...
- mike007
- Master Level 7.5
- Příspěvky: 5860
- Registrován: srpen 07
- Bydliště: Pardubice
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Automatické provádění změn v kopii v souhlasu s originálem
alenka_v_říši_divů: Nemaluj čerta na zeď. Nemám na starosti jenom Pc-help ...
Tady je upravená subrutina (to druhé makro)
[syntax lang=vb filename=makro2.txt]
Sub zaloha()
Dim sesit As Workbook, BackupFileName As String, i As Integer, OK As Boolean
Application.ScreenUpdating = False
If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub
Set sesit = ActiveWorkbook
If sesit.Path = "" Then
Application.Dialogs(xlDialogSaveAs).Show
Else
BackupFileName = "c:\zaloha.xls"
OK = False
On Error GoTo chyba
If Dir(BackupFileName) <> "" Then
Kill BackupFileName
End If
With sesit
Application.StatusBar = "Vytvářím zálohu..."
.Save
Application.StatusBar = "Ukládám zálohu..."
.SaveCopyAs BackupFileName
OK = True
End With
End If
Application.Workbooks.Open (BackupFileName)
With ActiveWorkbook
.WritePassword = "111"
Application.DisplayAlerts = False
.Save
.Close
Application.DisplayAlerts = True
End With
chyba:
Set sesit = Nothing
Application.StatusBar = False
If Not OK Then
MsgBox "Záloha nebyla vytvořena!", vbExclamation, ThisWorkbook.Name
End If
Application.ScreenUpdating = True
End Sub
[/syntax]
Na řádku 25 si do uvozovek vlož heslo (nyní nastaveno 111), kterým se bude záloha zamykat proti úpravám. Záloha nyní půjde otevřít pouze pro čtení.
Kdyby jsi to chtěl mít zamčené komplet, aby se do zálohy nikdo nedostal, tak .WritePassword nahraď .Password
Vřele ti doporučuji VBA zamknout, aby ti někdo to heslo z makra neokoukal...
Ve VBA: Tools --> VBAProject Properties... --> záložka Protection --> zaškrtni Lock project for viewing a dole zadej heslo
Tady je upravená subrutina (to druhé makro)
[syntax lang=vb filename=makro2.txt]
Sub zaloha()
Dim sesit As Workbook, BackupFileName As String, i As Integer, OK As Boolean
Application.ScreenUpdating = False
If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub
Set sesit = ActiveWorkbook
If sesit.Path = "" Then
Application.Dialogs(xlDialogSaveAs).Show
Else
BackupFileName = "c:\zaloha.xls"
OK = False
On Error GoTo chyba
If Dir(BackupFileName) <> "" Then
Kill BackupFileName
End If
With sesit
Application.StatusBar = "Vytvářím zálohu..."
.Save
Application.StatusBar = "Ukládám zálohu..."
.SaveCopyAs BackupFileName
OK = True
End With
End If
Application.Workbooks.Open (BackupFileName)
With ActiveWorkbook
.WritePassword = "111"
Application.DisplayAlerts = False
.Save
.Close
Application.DisplayAlerts = True
End With
chyba:
Set sesit = Nothing
Application.StatusBar = False
If Not OK Then
MsgBox "Záloha nebyla vytvořena!", vbExclamation, ThisWorkbook.Name
End If
Application.ScreenUpdating = True
End Sub
[/syntax]
Na řádku 25 si do uvozovek vlož heslo (nyní nastaveno 111), kterým se bude záloha zamykat proti úpravám. Záloha nyní půjde otevřít pouze pro čtení.
Kdyby jsi to chtěl mít zamčené komplet, aby se do zálohy nikdo nedostal, tak .WritePassword nahraď .Password
Vřele ti doporučuji VBA zamknout, aby ti někdo to heslo z makra neokoukal...
Ve VBA: Tools --> VBAProject Properties... --> záložka Protection --> zaškrtni Lock project for viewing a dole zadej heslo
Nejlepší hra je Excel!
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
• Pravidla fóra PC-help • Jak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
Různé způsoby souhlasu s cookies. Příloha(y)
od mmmartin » 26 led 2024 15:14 » v PC-HELP - připomínky k fóru - 38
- 6422
-
od Ltb
Zobrazit poslední příspěvek
18 úno 2024 20:52
-
-
-
Automatické přehrávání videa Příloha(y)
od fafejt » 09 úno 2024 13:59 » v Internet a internetové prohlížeče - 4
- 994
-
od fafejt
Zobrazit poslední příspěvek
09 úno 2024 17:30
-
-
- 4
- 4605
-
od ArtisPier
Zobrazit poslední příspěvek
26 zář 2023 12:29
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti