Automatické odesílání sešitu na email Vyřešeno

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

Moderátor: Mods_senior

Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Automatické odesílání sešitu na email  Vyřešeno

Příspěvekod Jsimi » 11 říj 2012 13:41

Ahoj,
Mám jeden sešit č.1, se kterým pracuji každý den. Chtěl bych do něj vložit makro, např. při každém spuštění sešitu č.1, které by hlídalo sešit č.2 a v případě jeho změny, by tento sešit odeslalo na předem určené emaily.
Možná to jde i jednodušeji, ale myslel jsem třeba na sešitu č.1 vytvořit skrytý list, do kterého by se ukládal datum a čas každého odeslání sešitu č.2 a podle data a času jeho změny by se vyhodnocovalo, zda je třeba ho odeslat nebo ne.
Díky za každý nápad.

Reklama
Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23592
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod ITCrowd » 11 říj 2012 15:35

Na to bych šel radši ve vbs. Klidně by pak mohl zapisovat či vytvářet xls soubor s daty a časy. Startoval by po spuštění PC (po přihlášení).
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod Jsimi » 11 říj 2012 16:13

Jsem trochu mimo, nevím co je to vbs.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23592
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod ITCrowd » 11 říj 2012 16:40

visual basic script. Syntaxe je podobná jazyku VBA ve kterém se píší makra.

--- Doplnění předchozího příspěvku (11 Říj 2012 20:14) ---

Test xls souboru na změnu - nelze jednoduše použít metodu DateLast Modified protože excel změní datum a čas už při otevření souboru. Pokud se soubor nezmění, pak datum a čas vrátí zpět, jenže to už soubor může projít testem a být chybně vyhodnocen. Nicméně jsem toto obešel tak, že mažu atribut "A" testovaného souboru. Excel po uložení změn totiž tento atribut nastavuje. Kod vypadá asi takto:

Kód: Vybrat vše

Const file = "K:\Testovany.xls"  ' hlídaný soubor na změnu
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFile = fso.GetFile(file)
Text = "Soubor " & oFile.Name & "  byl změněn"
  If oFile.Attributes AND 32 Then
   MsgBox Text, vbOKOnly + vbInformation, "Upozornění"
   oFile.Attributes = oFile.Attributes XOR 32
  End If

Odeslání souboru v e-mailu v případě zájmu natrénuju a dám vědět.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

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

Re: Automatické odesílání sešitu na email

Příspěvekod cmuch » 12 říj 2012 10:03

Odesílání emailu z excelu je popsáno zde http://excelplus.net/news.php?readmore=122

Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod Jsimi » 12 říj 2012 16:14

Tak ten kod dělá to co jsem si představoval. Teď, jestli můžu poprosit, rozchodit to odeslání na emaily. Pokud se to povede, bylo by to super. Ale mám jednu poznámku. Např.ten skript by se měl spouštět automaticky po přihlášení do počítače a pokud by měl hned posílat email, tak nastává problém se spouštěním Outlooku, kde je potřeba se nejprve přihlásit k exchange serveru, takže by asi bylo potřeba to časově posunout třeba o 10 min. Možná je i jiná možnost, ale já tento skript vidím poprvé a v makrech jsem uplný začátečník, který dává makra dohromady z různých rešení, nebo za pomoci Vás všech tady na fóru.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23592
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod ITCrowd » 12 říj 2012 16:48

Pokud si myslel můj kód: K odeslání e-mailu outlook netřeba. Stačí vědět smtp server - předpokládám. I když přes outlook to určitě půjde taky. Počáteční zpoždění taky není problém. A pokud to bude běžet automaticky, tak tam bude muset být nekonečná smyčka, předpokládám, že bude stačit test 1x za 10 minut.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod Jsimi » 12 říj 2012 17:20

Nekonečná smyčka není ani žádaná, změnit daný soubor může oprávněná osoba v průběhu směny třeba 3x, takže následující kontrola je v hodná až na další směně, aby se neposílaly 2 emaily naprosto zbytečně, takže kontrola by právě byla spuštěna po přihlášení do PC další směnou. Přes ten SMTP server to bohužel nepůjde. Přístup k emailu je pouze přes exchange, nebo Outlook Web App.Takže si myslím že spoždění cca.10 min je ideální.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23592
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod ITCrowd » 12 říj 2012 20:46

Takže tady je výsledek:

Kód: Vybrat vše

'**********************************************
'*   Script testuje soubor excelu na změnu    *
'* Pokud je soubor změněn odešle jej e-mailem *
'*       vytvořeno pro PC-Help                *
'*                                            *
'*        Etienna@Script v1.0                 *
'**********************************************

Option Explicit
Dim fso, oFile, Text, Pause
Dim objOutlk   'Outlook
Dim objMail   'Email item
Dim strMsg
Const olMailItem = 0
Const file = "C:\testovany.xlsm"  ' hlídaný soubor na změnu
Pause = 600000 'Počáteční zpoždění v ms
WScript.Sleep Pause
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set oFile = fso.GetFile(file)
Text = "Soubor " & oFile.Name & "  byl změněn"
'test xls
  If oFile.Attributes AND 32 Then
   'MsgBox Text, vbOKOnly + vbInformation, "Upozornění"
   Odeslani
   oFile.Attributes = oFile.Attributes XOR 32
  End If

Sub Odeslani
'Nová zpráva
   Set objOutlk = createobject("Outlook.Application")
   Set objMail = objOutlk.createitem(olMailItem)
   objMail.To = "my.mail@blabla.cz"
   objMail.cc = "" 'Zde adresa pro kopii; objMail.bcc pro skrytou adresu
'Předmět
   objMail.subject = "Automatická zpráva " & cstr(day(now)) & ". " & cstr(month(now)) & ". " & cstr(year(now))
'Zpráva   
   strMsg = "První řádek zprávy" & vbcrlf
   strMsg = strMsg & "Druhý řádek zprávy"
'Příloha
   objMail.attachments.add(file)
   objMail.body = strMsg
   'objMail.display 'Zobraz před odesláním, jinak rovnou objMail.Send pro odeslání
   objMail.Send
End sub
'Clean up
Set objMail = Nothing
Set objOutlk = Nothing
Set fso = Nothing
Set oFile = Nothing

Pokud bys chtěl zobrazovat zprávu o změně, pak umaž apostrof (') před MsgBox.
Vzhledem k tomu, že nejde použít SMTP je tam malá komplikace. Mkrkvosoftí klasika :oops: .
Pokud se rozhodneš zobrazit zprávu před odesláním, je to ok, jen odeslání musí schválit obsluha.
Pokud použiješ metodu obj.Mail.Send (tak jak je to napsáno) zobrazí outlook varování (viz. obrázek). Ale třeba jde outlook nastavit tak, aby to nezobrazoval - to nevím, mám ho jen v práci, jinak se mu vyhýbám jak to jen jde.

--- Doplnění předchozího příspěvku (12 Říj 2012 21:19) ---

Ještě doplnění - outlook nemusí být spuštěný. varování se ale zobrazí i tak.
Přílohy
Outlook_zpr.JPG
Outlook_zpr.JPG (16.12 KiB) Zobrazeno 3386 x
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Jsimi
Level 1.5
Level 1.5
Příspěvky: 119
Registrován: červen 12
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod Jsimi » 13 říj 2012 18:55

Děkuji za pomoc, funguje to perfektně. Dokonce jse mi povedlo, že není potřeba žádný zásah obsluhy, kromě toho že ten outlook, pokud není spuštěný, se spustí, požaduje přihlášení a pak se zase ukončí. Ale to není na závadu, protože první věcí kterou obsluha dělá je, že se přihlásí do Outlooku, proto to spoždění.
Ještě jednou dík.

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23592
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: Automatické odesílání sešitu na email

Příspěvekod ITCrowd » 13 říj 2012 21:04

Přihlášení požaduje zřejmě proto, že jednotliví členové obsluhy mají každý jiný účet. Outlook na kterém jsem to zkoušel má jen jediný účet a automaticky se na něj přihlašuje, protona přihlášení netrval.
Uvedený příklad sloužím mj. k tomu, že ve vbs lze skoro všechno. Doufám, že příznivců vbs po tomto přibude. Téma můžeš zamknout.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Odesílání emailu bez mého vědomí
    od trudy557 » 20 led 2024 19:16 » v Komunikace na internetu
    1
    1469
    od mmmartin Zobrazit poslední příspěvek
    20 led 2024 19:21
  • Seznam Doplněk – Email
    od jokabuki » 06 říj 2023 12:50 » v Internet a internetové prohlížeče
    1
    3432
    od KubaCZE Zobrazit poslední příspěvek
    21 úno 2024 20:00
  • Phishingovy utok aneb email odesilatele Příloha(y)
    od drobino » 15 pro 2023 08:22 » v Vše ostatní (sw)
    14
    1693
    od 28nitro28 Zobrazit poslední příspěvek
    17 pro 2023 20:12
  • Automatické přehrávání videa Příloha(y)
    od fafejt » 09 úno 2024 13:59 » v Internet a internetové prohlížeče
    4
    539
    od fafejt Zobrazit poslední příspěvek
    09 úno 2024 17:30
  • Windows 11 OneDrive automatické odstranění
    od ArtisPier » 26 zář 2023 11:41 » v Programy ke stažení
    4
    4301
    od ArtisPier Zobrazit poslední příspěvek
    26 zář 2023 12:29

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

Kdo je online

Uživatelé prohlížející si toto fórum: Seznam[Bot] a 2 hosti