Excel07: Jak zablokovat odeslání sešitu jako přílohu? Vyřešeno

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

Moderátor: Mods_senior

m.niki
Level 1
Level 1
Příspěvky: 60
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Excel07: Jak zablokovat odeslání sešitu jako přílohu?  Vyřešeno

Příspěvekod m.niki » 20 pro 2010 14:53

Zdravím, mám problém.

Excel 2007 umožňuje odeslat sešit jako přílohu ve formátu pdf. Pomocí makra

Kód: Vybrat vše

Private Sub Workbook_beforePrint(Cancel As Boolean)
      Sheets(Array("Dodavatelé", "Odběratelé", "List3", "pomocný list", "řidiči", _
       "Soupravy", "Format_Edit", "Format_tisk", "List4", "Svatky")).Visible = False
End Sub


v ThisWorkbook si schovám to, co nechci odeslat. Paní účetní se však jednou překlikla a zvolila při odesílání položku o jedno výše, odeslala email s celým sešitem jako přílohou, sice byly skryté "tajné" listy ale ty není problém zobrazit. V tomto případě se naštěstí jednalo o odeslání e-mailu důvěrné osobě, ale to tak příště být nemusí. Potřeboval bych nějak pomocí makra zakázat všechny možnosti odeslání mailu kromě emailu s přílohou pdf, je to možné?

A ještě jeden dotaz, jak mám doplnit makro výše uvedené, aby něco provedno po provedení tisku(odeslání mailu), jde mě o to, aby se listy zase ukázaly.

Díky moc za rady

// Upřesnění názvu tématu
// mike007

Reklama
Uživatelský avatar
mike007
Master Level 7.5
Master Level 7.5
Příspěvky: 5860
Registrován: srpen 07
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Excel07: Jak zablokovat odeslání sešitu jako přílohu?

Příspěvekod mike007 » 21 pro 2010 23:51

Jsem teď momentálně v práci, kde používáme Excel 2003. V této verzi lze tu možnost jednoduše odstranit tak, že klikneš pravým tlačítkem na horní panel, z kontextového menu vybereš "Customize", pravým tlačítkem označíš položku a z menu vybereš možnost Odstranit. Paní účetní pak nebude mít na co kliknout :wink: Nejsem si ale jistý, jestli něco takového jde i ve verzi 2007. Vyzkoušej.

Co se týče toho makra, tak já osobně bych ho upravil takto:

Kód: Vybrat vše

Private Sub Workbook_beforePrint(Cancel As Boolean)
Sheets(Array("Dodavatelé", "Odběratelé", "List3", "pomocný list", "řidiči", _
"Soupravy", "Format_Edit", "Format_tisk", "List4", "Svatky")).Visible = False
Application.OnTime Now(), ThisWorkbook.Name & "!odkryt"
End Sub


To ulož do ThisWorkbook.

Do modulu si ulož toto makro:

Kód: Vybrat vše

Sub odkryt()
Sheets(Array("Dodavatelé", "Odběratelé", "List3", "pomocný list", "řidiči", _
"Soupravy", "Format_Edit", "Format_tisk", "List4", "Svatky")).Visible = True
End Sub
Nejlepší hra je Excel!
Pravidla fóra PC-helpJak 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.

m.niki
Level 1
Level 1
Příspěvky: 60
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: Excel07: Jak zablokovat odeslání sešitu jako přílohu?

Příspěvekod m.niki » 22 pro 2010 08:05

Kód: Vybrat vše

Application.OnTime Now(), ThisWorkbook.Name & "!odkryt"
funguje parádně, díky, to skrytí možností v menu jsem nenašel, ale zatím jsem to vyřešil zástupcem v rychlém přístupu a poučením, ať odesílá pouze tímto když se překlikne tak zobrazí náhled nebo to vytiskne.

ještě bych měl jeden dotaz, když odesílám ten sešit jako pdf přílohu, je možno nějak do makra BeforePrint zakomponovat, aby jako adresu použilo buňku A1 z list4, jako předmět B1 z list4 a text mailu c1 z list4? při normálním odeslání mailu používám .

Kód: Vybrat vše

Set oOLook = CreateObject("Outlook.Application")
oOLook.Session.Logon
Set Zprava = oOLook.CreateItem(0)
 
Zprava.Display

With Zprava
    .To = "něco"
    .CC = "něco@něco.cz"
    .Subject = "předmět"
    .Body = "text mailu"
End With


ale netuším jak položky To, CC, Subject a Body zakomponovat do makra before print, aby to fungovalo a nezlobilo to v případě, že nebudu odesílat mailem ale pouze tisknout, je to reálné? díky

m.niki
Level 1
Level 1
Příspěvky: 60
Registrován: červenec 10
Pohlaví: Muž
Stav:
Offline

Re: Excel07: Jak zablokovat odeslání sešitu jako přílohu?

Příspěvekod m.niki » 04 led 2011 16:51

tak jsem se s tím konečně popral, odesílání se bude provádět tlačítkem, tady je kód, kdyby někdo řešil něco podobného

Kód: Vybrat vše

 Private Sub Send_mail_Click()
Dim Outlook As Outlook.Application
Dim Zprava As Object
Dim PDF_path As String

PDF_path = ActiveWorkbook.Path & "\Objednávka.pdf"


Sheets("List2").Visible = False
Sheets("List3").Visible = False
Sheets("List4").Visible = False
 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDF_path _
       , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False


Set Outlook = New Outlook.Application
   
Set Zprava = Outlook.CreateItem(olMailItem)
   
Set myAttachments = Zprava.Attachments

On Error GoTo ERR1
   
myAttachments.Add PDF_path, olByValue, 1, ""

With Zprava
        'adresát
        .To = List4.Range("a1")
        'předmět
        .Subject = List4.Range("b1")
        'obsah
        .Body = List4.Range("c1")
        'formát mailu
        .BodyFormat = olFormatPlain
        'zobrazit okno
        .Display
        'odeslat
        '.Send
End With

GoTo konec
   
ERR1:
MsgBox "e-mai nebyl odeslán, něco je špatně"
konec:
Sheets("List2").Visible = True
Sheets("List3").Visible = True
Sheets("List4").Visible = True

End Sub


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

Kdo je online

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