zavření sešitu - excelu

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

Moderátor: Mods_senior

crgo77
Level 1
Level 1
Příspěvky: 68
Registrován: duben 14
Pohlaví: Muž
Stav:
Offline

zavření sešitu - excelu

Příspěvekod crgo77 » 12 srp 2014 19:51

Zdravím všechny,
prosím o pomoc s kódem - nevěděl by někdo,jak zakázat ukončení ( zavření excelu ) křížkem?

Na googlu jsem nějaké možnosti našel,ale ty se bohužel týkaly jen zakázání zavření userform formuláře.

Nevěděl by někdo jak zakázat zavření excelu křížkem? V tabulce mám tlačítko uložení a zavření ( ukládá se mi tím záloha souboru ).

Předem děkuji za radu.

Reklama
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: zavření sešitu - excelu

Příspěvekod Azuzula » 13 srp 2014 08:51

Ahoj,
a co třeba dát to makro na uložení do Workbook_BeforeClose v modulu This Workbook? Pak kdykoliv zmáčkneš křížek, tak se ti sešit uloží a zavře. Nešlo by to tak?

--- Doplnění předchozího příspěvku (13 Srp 2014 08:58) ---

Samožřejmně, že i zakázání zavření jde udělat.
V modulu This Workbook:

Kód: Vybrat vše

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If zavrit = True Then
    Cancel = False
Else
    Cancel = True
End If
End Sub

Na začátek modulu s makrem ukládajícím sešit (úplně nahoru před všechny makra):

Kód: Vybrat vše

Public zavrit As Boolean

a do svého makra před řádek který má sešit zavřít přidej:

Kód: Vybrat vše

zavrit = True
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

guest
Pohlaví: Nespecifikováno

Re: zavření sešitu - excelu

Příspěvekod guest » 14 srp 2014 23:05

Zavřít sešit nebo zavřít Excel? Jo křížek v titulkové liště aplikace (mimochodem tlačítka mají souvislost se systémovým menu okna, tj, po klepnutí na ikonu Excelu v levém horním roku) třeba přes API a dál? Co pravé tlačítko myši na zástupce Excelu v systémové liště, klávesová zkratka ALT+F4? Ono má opravdu větší smysl nenechat si zavřít sešit...

crgo77
Level 1
Level 1
Příspěvky: 68
Registrován: duben 14
Pohlaví: Muž
Stav:
Offline

Re: zavření sešitu - excelu

Příspěvekod crgo77 » 17 srp 2014 14:23

Zdravím,
myslím tím zavření celého excelu. Jak jsem psal,používám ukládání kopie sešitu ( prosil jsem o řešení v jiném tématu ) ale kolegové,kteří používají
tento sešit mi bohužel místo tlačítka uložit a zavřít ( sešit se sám uloží a ukončí celý excel ,včetně vytvoření zálohy ) mi klikají na křížek a to je bohužel nežádoucí. Neustále mi dávají otázky typu co s tím mám dělat ( vyskočí na ně hlášení,že v sešitu byly provedeny změny,zda se mají uložit ).Snažil jsem se tomu
předejít výše uvedeným tlačítkem,ale nemůžu je nějak dotlačit aby ho používali.

Děkuju za pochopení a rady,které mi poradíte.

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: zavření sešitu - excelu

Příspěvekod Azuzula » 18 srp 2014 18:50

Tak ještě jednou:
Azuzula píše:... a co třeba dát to makro na uložení do Workbook_BeforeClose v modulu This Workbook? Pak kdykoliv zmáčkneš křížek, tak se ti sešit uloží a zavře...


Pokud nebudeš vědět jak na to, napiš.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

guest
Pohlaví: Nespecifikováno

Re: zavření sešitu - excelu

Příspěvekod guest » 18 srp 2014 23:11

Pokud víte, co děláte...

Kód: Vybrat vše

Private Const MF_BYCOMMAND As Long = &H0
Private Const SC_CLOSE As Long = &HF060

Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Sub NedovolitZavrit()

    Call CloseButton(False)
   
End Sub

Sub PovolitZavrit()

    Call CloseButton(True)

End Sub

Private Sub CloseButton(Optional bEnabled As Boolean = False)

    Dim hSysMenu As Long
    Dim hWnd As Long

    'handle aplikace
    hWnd = Application.hWnd

    If bEnabled Then
        'obnova systémového menu
        Call GetSystemMenu(hWnd, 1)
    Else
        'handle systémového menu
        hSysMenu = GetSystemMenu(hWnd, 0)
        'křížek zakázán
        Call RemoveMenu(hSysMenu, SC_CLOSE, MF_BYCOMMAND)
    End If

    'překreslení
    Call DrawMenuBar(hWnd)

End Sub

guest
Pohlaví: Nespecifikováno

Re: zavření sešitu - excelu

Příspěvekod guest » 20 srp 2014 16:00

Já tenhle hatlamatla dotaz nechápu. Sešit osobních maker je v podstatě něco mezi doplňkem a normálním sešitem. Můžete k němu přistoupit přes Workbooks("PERSONAL.XLSB"). Hlášky ukládaní se lze zbavit několika způsoby : zmíněné SaveChanges metody Close, vlastnost Saved nastavená na True (Excel nabude dojmu, že v sešitu nenastaly změny), nebo přes Application.DisplayAlerts = False. Obecně ale nerozumím tomu, proč se vůbec o sešit maker zajímáte (a také nebyl součástí původního dotazu). Ostatně jeho programové zavření může zapříčinit nemožnost nahrát další makro (správně řečeno proceduru).

guest
Pohlaví: Nespecifikováno

Re: zavření sešitu - excelu

Příspěvekod guest » 21 srp 2014 16:22

Test, zůstal-li otevřený (ne viditelný) pouze PERSONAL.XLSB:

Kód: Vybrat vše

blnPouzePersonal = (Workbooks.Count = 1) And Workbooks(1).Name = "PERSONAL.XLSB"


Stačí?

P. S. Jistě, prdelky, vy chcete pomoct, ne já...

Toomicek
nováček
Příspěvky: 49
Registrován: listopad 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: zavření sešitu - excelu

Příspěvekod Toomicek » 22 srp 2014 12:49

Bylo to přesunuto (smazáno), ale řešením bylo:

Kód: Vybrat vše

For Each w In Application.Workbooks
 w.Save
Next w
Application.Quit


Uloží a zavře i personal.xlsb

Díky za pomoc :)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Zachovat otevřené programy po zavření notebooku - Windows 11 Příloha(y)
    od orfan » 14 bře 2024 11:10 » v Windows 11, 10, 8...
    7
    1301
    od orfan Zobrazit poslední příspěvek
    15 bře 2024 23:26
  • Import PDF do excelu Příloha(y)
    od luko02420 » 13 kvě 2023 11:29 » v Kancelářské balíky
    18
    3880
    od luko02420 Zobrazit poslední příspěvek
    16 kvě 2023 11:27
  • Poškozený soubor excelu Příloha(y)
    od Jsimi » 06 úno 2024 22:43 » v Kancelářské balíky
    0
    1150
    od Jsimi Zobrazit poslední příspěvek
    06 úno 2024 22:43
  • Promítaní excelu a videa zároveň
    od Marw7_ » 02 čer 2023 15:57 » v Vše ostatní (sw)
    2
    1394
    od X Zobrazit poslední příspěvek
    02 čer 2023 18:06
  • Graf v Excelu ukazuje chybné hodnoty. Příloha(y)
    od atari » 25 dub 2024 08:42 » v Kancelářské balíky
    4
    424
    od atari Zobrazit poslední příspěvek
    25 dub 2024 13:28

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

Kdo je online

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