EXCEL - MAKRO - uložení se jménem...

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

Moderátor: Mods_senior

Miloš Nauš
nováček
Příspěvky: 4
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

EXCEL - MAKRO - uložení se jménem...

Příspěvekod Miloš Nauš » 19 bře 2013 10:32

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.

Reklama
Jjg
Level 1
Level 1
Příspěvky: 53
Registrován: únor 13
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod Jjg » 19 bře 2013 14:38

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
Přílohy
Jiří_2013-3-19.xlsm
(15.74 KiB) Staženo 92 x

Miloš Nauš
nováček
Příspěvky: 4
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod Miloš Nauš » 19 bře 2013 14:47

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.

Jjg
Level 1
Level 1
Příspěvky: 53
Registrován: únor 13
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod Jjg » 19 bře 2013 15:01

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).

Mirdad69
Level 2
Level 2
Příspěvky: 219
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod Mirdad69 » 19 bře 2013 15:41

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.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod cmuch » 19 bře 2013 18:13

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

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"

Jjg
Level 1
Level 1
Příspěvky: 53
Registrován: únor 13
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod Jjg » 19 bře 2013 18:49

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.

Miloš Nauš
nováček
Příspěvky: 4
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod Miloš Nauš » 26 bře 2013 13:25

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ží.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod cmuch » 27 bře 2013 07:05

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

Miloš Nauš
nováček
Příspěvky: 4
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod Miloš Nauš » 28 bře 2013 08:10

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

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: EXCEL - MAKRO - uložení se jménem...

Příspěvekod cmuch » 28 bře 2013 12:49

Sice tomu moc nerozumím, proč se nemá uložit soubor.
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
    4819
    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
    4794
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    3359
    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
    4109
    od lubo. Zobrazit poslední příspěvek
    14 led 2025 00:51

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

Kdo je online

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