Vyvolání makra při uložení

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

Moderátor: Mods_senior

Ludwa
nováček
Příspěvky: 8
Registrován: leden 09
Pohlaví: Nespecifikováno
Stav:
Offline

Vyvolání makra při uložení

Příspěvekod Ludwa » 03 dub 2009 08:12

Zdravím,
koukal jsem, že tady je řešeno vyvolání makra při otevření a před uložením ale já bych potřeboval aby se zobrazovala poslední změna po ulože. Potřebuji v jedné buňce zobrazovat aktuální datum uložení souboru.Nechalo by se to nějak jednoduše pořešit. Při otevření a před uložením mi to jde. Ale pokud soubor otevřu udělám změny a dam tisk budu mít tabulku s předchozím datem uložení. Potřebuji vždy tisknout s posledním uloženým datem.Díky

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání marka při uložení

Příspěvekod navstevnik » 03 dub 2009 10:05

Pozadujes, cituji: "Ale pokud soubor otevřu udělám změny a dam tisk budu mít tabulku s předchozím datem uložení.". Sam musis uznat, ze pozadujes nemozne - soubor neukladas, ale chces mit datum jeho budouciho ulozeni.
Soubor programove pouze uloz, dej tisk a pak zavri. Nic jineho nelze poradit

Ludwa
nováček
Příspěvky: 8
Registrován: leden 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání marka při uložení

Příspěvekod Ludwa » 03 dub 2009 12:21

Možná jsem to tak trochu nesmyslně napsal. Chtěl bych aby se makro vykonalo při uložení a nebo při tisku. Samozřejmě nechci aby to zobrazovalo budoucí datum uložení.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání marka při uložení

Příspěvekod navstevnik » 03 dub 2009 12:50

Pokud soubor pred tiskem neulozis, tak datum ulozeni bude z ulozeni pred otevrenim souboru, kdy tisknes.
Takze musis soubor ulozit a pak tisknout a budes mit datum ulozeni predchazejici tisk o par sekund.
Takze asi takhle:

Kód: Vybrat vše

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
....
ActiveWorkbook.PrintOut
....
End Sub

Ludwa
nováček
Příspěvky: 8
Registrován: leden 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání marka při uložení

Příspěvekod Ludwa » 03 dub 2009 14:29

a nešlo by to udělat bez toho zavření. Kdybych prostě kliknul na uložit a ono to hodilo do buňky datum poslední změny.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání marka při uložení

Příspěvekod navstevnik » 03 dub 2009 17:53

Neuvedls, jak ziskavas datum ulozeni, jen ze ti to jde. To, co jsem uvedl, byla ilustrace toho, jak bys mohl postupovat.
Samozrejme muzes soubor ulozit i "rucne": Soubor>Ulozit, vlozit tebou blize nespecifikovanym zpusobem datum a cas ulozeni do bunky a pak tisknout treba zase "rucne". Ale nubude to datum a cas ulozeni pri zavreni souboru.
Pro tvou potrebu, pokud budes popisovane cinnosti vykonavat programove, cas posledniho ulozeni:

Kód: Vybrat vše

Sub LastSave()
Range("k1").Value = ActiveWorkbook.BuiltinDocumentProperties(12)
End Sub

Ludwa
nováček
Příspěvky: 8
Registrován: leden 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání makra při uložení

Příspěvekod Ludwa » 03 dub 2009 18:42

Tento kod mi nejak nic nedela. Ještě jednou zkusím popsat o co mi jde. Potřeboval bych, aby se mi v jedné bunce rozbrazoval datum poslední změny. Když otevru soubor ukaže se datum. Pokud udělam změny a samozřemně uložim datum by se změnil. A aby se pri tisku zobrazoval atuální datum poslední změny. Duležité je pokud soubor jenom otevru a dam tisk aby se datum nezmenil. Dobré by bylo kdyby to jeste porovnavalo automaticky zmeny a pripadne ulozilo. Ale to je az zbytecne slozite.
Jinak datum zobrazuji

Kód: Vybrat vše

[datum].Value = ActiveWorkbook.BuiltinDocumentProperties.Item("Last save time")

ted to mam udelany zatim tak to

Kód: Vybrat vše

Private Sub Workbook_BeforePrint(Cancel As Boolean)
[datum].Value = ActiveWorkbook.BuiltinDocumentProperties.Item("Last save time")
End Sub

Private Sub Workbook_Open()
[datum].Value = ActiveWorkbook.BuiltinDocumentProperties.Item("Last save time")
End Sub

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání makra při uložení

Příspěvekod navstevnik » 03 dub 2009 19:17

Zadani vlastnosti
.BuiltinDocumentProperties(12) je ekvivalentni .BuiltinDocumentProperties.Item("Last save time")
a uvedeny kod vlozi na aktivni list do bunky K1 datum posledniho ulozeni.

Do sve procedury:

Kód: Vybrat vše

Private Sub Workbook_BeforePrint(Cancel As Boolean)
[datum].Value = ActiveWorkbook.BuiltinDocumentProperties.Item("Last save time")
End Sub

vloz prikaz na ulozeni souboru, a dostanes:

Kód: Vybrat vše

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveWorkbook.Save
[datum].Value = ActiveWorkbook.BuiltinDocumentProperties.Item("Last save time")
End Sub

takze pred tiskem budes mit soubor ulozen a ziskas datum posledniho ulozeni.
Pokud to jeste neni ono, pak to vzdavam. :wink:

Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: květen 07
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Vyvolání makra při uložení

Příspěvekod X » 03 dub 2009 21:26

Já to řeším tak, že ukládám soubor jako název+datum+čas, samozřejmě VBA.

Tlačítko pro uložení.

Do události tlačítka:

Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
Dim location As String
location = "C:\DOKUMENTY\LEXIKON\LEXIKON " & Format(Now(), "yyyy/mm/dd ") & Format(Time(), "hh-mm-ss") & ".xls"
Cells(1, 1).Select
ActiveWorkbook.SaveAs Filename:=location
End If
End Sub

Přidáš si ještě uložení data a času do buňky ve VBA nebo dáš do buňky funkci políčko ...

Ludwa
nováček
Příspěvky: 8
Registrován: leden 09
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Vyvolání makra při uložení

Příspěvekod Ludwa » 06 dub 2009 07:18

No ono to ještě úplně není. Protože když si to budu chtít pouze vytisknout a budu mít jiný datum než jsem opravdu provedl změnu. Ten datum v souboru je taky dobry nápad, ale pro mě nepoužitelný. Protože já dále pracuji s tabulkami v tištěné podobě. A nechci aby se mi stalo, že budu mít vytištěné dvě obsahově stejné tabulky a každá bude mít jiný datum. Já už jsem to snad tak nějak zkombinoval, že by to bylo asi trochu použitelné. Moc děkuji za pomoc a nápady.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • vyvolani fotek online - starsi fotky nelze presunout do PC
    od p3v4x » 04 črc 2023 21:47 » v Vše ostatní (Off topic)
    1
    1953
    od petr22 Zobrazit poslední příspěvek
    11 črc 2023 13:12
  • excel-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    593
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43

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

Kdo je online

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