Ahoj,
Jsem začáteční uživatel Maker v excelu a prosím o radu.
Potřeboval bych udělat makro, které by po ukončení excelu dokument uložilo jako nový dokument do stejné složky a v jeho názvu bylo jméno uživatele a datum změny, který tento dokument změnil. Děkuji za radu.
EXCEL - MAKRO - uložení se jménem...
-
- nováček
- Příspěvky: 4
- Registrován: březen 13
- Pohlaví:
- Stav:
Offline
Re: EXCEL - MAKRO - uložení se jménem...
V příloze je nástin makra (v modulech Module1 a ThisWorkbook).
Funkce název NázevSouboru v Module1 sestaví Vámi požadovaný název souboru,
událostní procedura Workbook_BeforeClose uloží soubor při ukončení Excelu.
Nevím, s jakým záměrem podobné makro tvoříte - přílohu můžete použít prakticky jen jako jednoduchou ukázku a myslím, že si na tom ještě "zamakáte".
Zkoušeno v Excelu 2007, Windows XP
Funkce název NázevSouboru v Module1 sestaví Vámi požadovaný název souboru,
událostní procedura Workbook_BeforeClose uloží soubor při ukončení Excelu.
Nevím, s jakým záměrem podobné makro tvoříte - přílohu můžete použít prakticky jen jako jednoduchou ukázku a myslím, že si na tom ještě "zamakáte".
Zkoušeno v Excelu 2007, Windows XP
- Přílohy
-
- Jiří_2013-3-19.xlsm
- (15.74 KiB) Staženo 92 x
-
- nováček
- Příspěvky: 4
- Registrován: březen 13
- Pohlaví:
- Stav:
Offline
Re: EXCEL - MAKRO - uložení se jménem...
Mockrát děkuji vyzkouším .
Zmíněné marko má sloužit ke zjištění, jáký uživatel soubor otevřel a změnil (uložil). Přičemž se zabrání Přemazání staršího souboru.
Zmíněné marko má sloužit ke zjištění, jáký uživatel soubor otevřel a změnil (uložil). Přičemž se zabrání Přemazání staršího souboru.
Re: EXCEL - MAKRO - uložení se jménem...
No, Váš záměr zní jednoduše, ale jak jsem psal výše, ještě si zapracujete - ten můj "nástin" makra řeši jen zápis při ukončení samotného Excelu (jak jste uvedl v dotazu). Budete muset ošetřit další případy (např. příkazy "Uložit", "Uložit jako ... " během práce se souborem a další na něž přijdete možná až v praxi).
Re: EXCEL - MAKRO - uložení se jménem...
Zdravím,
také byste si měl uvědomit, že to vše se provede pouze v případě. že uživatel povolí makra.
Takže by možná chtělo, aby se makrem odemykal sešit/list.
také byste si měl uvědomit, že to vše se provede pouze v případě. že uživatel povolí makra.
Takže by možná chtělo, aby se makrem odemykal sešit/list.
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: EXCEL - MAKRO - uložení se jménem...
To otevírání sešitu jsem řešil již tu, jen chce trochu poupravit.
A ošetření možnosti Uložit jako... lze ošetřit takto
Pro uložení kopie sešitu bych použil toto
A ošetření možnosti Uložit jako... lze ošetřit takto
Kód: Vybrat vše
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then
MsgBox "Nelze udelat kopii!!"
Cancel = True
End
End If
End Sub
Pro uložení kopie sešitu bych použil toto
Kód: Vybrat vše
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & Format(Now, "yyyy-mm-dd-hh-mm") & "_" & Environ("UserName") & ".xlsm"
Re: EXCEL - MAKRO - uložení se jménem...
Vidím, že moje znalosti jsou sto let za opicemi (konečně, už jsem stařík), takže tu už se plantat nebudu. Ani jsem netušil, jak jde uživatele jednoduše zjistit.
-
- nováček
- Příspěvky: 4
- Registrován: březen 13
- Pohlaví:
- Stav:
Offline
Re: EXCEL - MAKRO - uložení se jménem...
velice děkuji za rady už to skoro celé funguje až na ukládání. Když chci uložit dokument => uložit jako tak to mi makro zakáže., ale bohužel při => Ulož (uložení rozepsaného souboru) se mi soubor uloží cemuž chci zabránit. :( Prosím tedy ještě o jednu radu děkuji. Toto jsem zatim dal dohromady.
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'při ukončení Ecelu
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & Format(Now, "yyyy-mm-dd-hh-mm") & "_" & Environ("UserName") & ".xlsm"
End Sub
Private Sub Workbook_BeforeSave(ByVal Save As Boolean, Cancel As Boolean)
If Save = True Then
MsgBox "Nelze udelat kopii!!"
Cancel = True
End
End If
End Sub
Private Sub Workbook_BeforeXmlExport(ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)
End Sub
--- Doplnění předchozího příspěvku (26 Bře 2013 13:30) ---
A to samé mi dělá problém při uzavření dokumentu. Dokument se mi sice vytvoří jak potřebuji a uloží , ale nevim jak přerušit vyskočení "hlášky" jestli chci změny v souboru uložit Jelikož když zvolim ANO tak se mi zdrojový soubor přeuloží.
--- Doplnění předchozího příspěvku (26 Bře 2013 13:34) ---
A to samé mi dělá problém při uzavření dokumentu. Dokument se mi sice vytvoří jak potřebuji a uloží , ale nevim jak přerušit vyskočení "hlášky" jestli chci změny v souboru uložit Jelikož když zvolim ANO tak se mi zdrojový soubor přeuloží.
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'při ukončení Ecelu
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & Format(Now, "yyyy-mm-dd-hh-mm") & "_" & Environ("UserName") & ".xlsm"
End Sub
Private Sub Workbook_BeforeSave(ByVal Save As Boolean, Cancel As Boolean)
If Save = True Then
MsgBox "Nelze udelat kopii!!"
Cancel = True
End
End If
End Sub
Private Sub Workbook_BeforeXmlExport(ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)
End Sub
--- Doplnění předchozího příspěvku (26 Bře 2013 13:30) ---
A to samé mi dělá problém při uzavření dokumentu. Dokument se mi sice vytvoří jak potřebuji a uloží , ale nevim jak přerušit vyskočení "hlášky" jestli chci změny v souboru uložit Jelikož když zvolim ANO tak se mi zdrojový soubor přeuloží.
--- Doplnění předchozího příspěvku (26 Bře 2013 13:34) ---
A to samé mi dělá problém při uzavření dokumentu. Dokument se mi sice vytvoří jak potřebuji a uloží , ale nevim jak přerušit vyskočení "hlášky" jestli chci změny v souboru uložit Jelikož když zvolim ANO tak se mi zdrojový soubor přeuloží.
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: EXCEL - MAKRO - uložení se jménem...
Tak vyzkoušej toto: (vše patří do thisworkbook)
Kód: Vybrat vše
Option Explicit
Dim Zavri As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'při ukončení Ecelu
' pokud je ukonceni a ulozeni - zavri
If Zavri = True Then
Exit Sub
End If
' ulozi kopii souboru jako
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & Format(Now, "yyyy-mm-dd-hh-mm") & "_" & Environ("UserName") & ".xlsm"
Zavri = True ' nastavi ukonceni
ActiveWorkbook.Save ' ulozi soubor a zavře ho
End Sub
Private Sub Workbook_BeforeSave(ByVal Save As Boolean, Cancel As Boolean)
' pokud se ma sesit zavrit, ulož
If Zavri = False Then
MsgBox "Soubor se uloží při zavření !!"
Cancel = True ' zakáže uložení
End If
End Sub
-
- nováček
- Příspěvky: 4
- Registrován: březen 13
- Pohlaví:
- Stav:
Offline
Re: EXCEL - MAKRO - uložení se jménem...
Mockrát děkuji vše funguje jak má. Profíci se poznají 
--- Doplnění předchozího příspěvku (28 Bře 2013 11:00) ---
Tak ještě malá chybička :(
při zavření sice nevyskočí hláška jestli chci daný dokument uloži, ale soubor se mi uloží sám. Tomu chci zabránit aby se změny uložili do kopie (což funguje skvěle) a ne aby se mi přepsal zdroj. Děkuju

--- Doplnění předchozího příspěvku (28 Bře 2013 11:00) ---
Tak ještě malá chybička :(
při zavření sice nevyskočí hláška jestli chci daný dokument uloži, ale soubor se mi uloží sám. Tomu chci zabránit aby se změny uložili do kopie (což funguje skvěle) a ne aby se mi přepsal zdroj. Děkuju
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: EXCEL - MAKRO - uložení se jménem...
Sice tomu moc nerozumím, proč se nemá uložit soubor.
Tak pak takto
Tak pak takto
Kód: Vybrat vše
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'při ukončení Ecelu
' ulozi kopii souboru jako
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & Format(Now, "yyyy-mm-dd-hh-mm") & "_" & Environ("UserName") & ".xlsm"
' a zavře ho beze změn
ActiveWorkbook.Close SaveChanges:=False
End Sub
Private Sub Workbook_BeforeSave(ByVal Save As Boolean, Cancel As Boolean)
MsgBox "Soubor nelze uložit !!"
Cancel = True ' zakáže uložení
End Sub
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
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
- 4818
-
od Riviera kid
Zobrazit poslední příspěvek
02 zář 2024 16:21
-
-
- 2
- 12233
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 4778
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
-
- 3
- 3357
-
od lubo.
Zobrazit poslední příspěvek
24 říj 2024 00:00
-
-
Excel 2016 - vzorec kombinace podmínek Příloha(y)
od MK_Vs » 08 led 2025 17:56 » v Kancelářské balíky - 5
- 4105
-
od lubo.
Zobrazit poslední příspěvek
14 led 2025 00:51
-
Kdo je online
Uživatelé prohlížející si toto fórum: elninoslov a 5 hostů