pošiljanje sporočila ob odprtju delovnega zvezka

Pomoč pri delu z MS Excelom
Odgovori
miha1
Prispevkov: 20
Pridružen: Sr Avg 10, 2005 5:07 pm

pošiljanje sporočila ob odprtju delovnega zvezka

Odgovor Napisal/-a miha1 »

pozdravljeni

najprej bi seveda poudaril,da mi je hudo ob pogledu na izgubljene
podatke,ki so se nahajali v forumu,saj je bilo v njem veliko dobrih
rešitev in kar nekaj mojih vprašanj.tudi to bomo preživeli....
sočustvujem z Matjažem in ostalimi,kise trudijo..

torej,moje vprašanje je sledeče:
kako poslati preko outlook expres sporočilo ob odptrju
delovnega zvezka.sam imam nekaj takšnega:

Private Sub Workbook_Open()
activeworkbook.sendmail "peter.petrovic@triera.net","podatki"
end sub

no,v mojem primeru ti pripne celo datoteko,kar pa si jaz ne želim,
temveč le mail brez datoteke na katerem bi pod subject pisalo "podatki".
to je vse.želel bi tudi,da mi avtomatsko izbere outlook expres in odpošlje brez dodatnega spraševanja o varnosti pošiljke.
za odgovor se najlepše zahvaljujem
lp miha1
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Če je računalnik priključen v omrežje (internet) in imate pravilno nastavljen privzeti poštni odjemalec, potem bo vaše želje izpolnila sledeča programska koda, ki ni odvinsna od MS Pisarne, temveč izkorišča možnosti samega operacijskega sistema.

V kodi samo pravilno nastavite parametra 'To' (e-naslov prejemnika) in 'From' (vaš e-naslov).

Koda: Izberi vse

' www.matjazev.net
' 10.08.2005
Sub PosliEPosto()
    Dim iMsg As Object
    Dim iConf As Object

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    With iMsg
        Set .Configuration = iConf
        .To = "webmaster@matjazev.net"
        .CC = ""
        .BCC = ""
        .From = "<webmaster@matjazev.net>"
        .Subject = "Podatki"
        .TextBody = ""
        .Send
    End With

    Set iMsg = Nothing
    Set iConf = Nothing
End Sub
lp,
Matjaž Prtenjak
Administrator
miha1
Prispevkov: 20
Pridružen: Sr Avg 10, 2005 5:07 pm

Odgovor Napisal/-a miha1 »

pozdravljeni

ja,točno to sem si želel,kar ste napisali.koda mi deluje odlično,
(seveda pa je prvič romala na vaš naslov)za kar se vam
iskreno zahvaljujem.
lp miha1
DusanS
Prispevkov: 31
Pridružen: To Jul 26, 2005 11:16 am

Odgovor Napisal/-a DusanS »

Pozdravljeni.
Tudi jaz sem pristavil piskerček in Matjažev makro izkoristil za lajšanje pisarniških opravil. Še boljše pa bi bilo, če bi k e-pošti lahko dodal še priponko, npr nek wordov dokument. Kako to storim?

LP Dušan
GoldZ
Prispevkov: 137
Pridružen: Če Sep 01, 2005 10:20 am

Odgovor Napisal/-a GoldZ »

Pozdravljeni!

Če želite dodati še kako priponko...

Koda: Izberi vse

 .AddAttachment "c:\test.txt" 
Vpišite še samo pravo pot datoteke :D

P.S. vrstico kode seveda dodate znotraj Whit...
Življenje je enostavno, če poznaš "The Secret".
GoldZ
sidol
Prispevkov: 5
Pridružen: Po Dec 18, 2006 10:47 pm

Odgovor Napisal/-a sidol »

Pozdravljeni !

Mene pa zanima naslednje:
kako bi vnesel v TextBody npr. tabelo s podatki v območju od A23:N53.
Tabelo bi namreč rad poslal po mailu vendar ne kot AddAttachment
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Prilagam vam funkcijo, ki poljubno območje preslika v niz znakov. Funkcija med posameznimi vrednostmi (med posameznimi celicami) vstavi tabulator chr(9), med vrsticami pa oznaki za konec vrstice (chr(10) & chr(13)), če želite kaj drugega to ustrezno popravite:

Koda: Izberi vse

' www.matjazev.net
' 04.12.2007
Function ObmocjeVNizZnakov(Obmocje As Range)
  Dim vrstica, celica
  Dim nizZnakov As String
  
  For Each vrstica In Obmocje.Rows
    For Each celica In vrstica.Cells
      nizZnakov = nizZnakov & celica.Value & Chr(9)
    Next
    nizZnakov = nizZnakov & Chr(10) & Chr(13)
  Next
    
  ObmocjeVNizZnakov = nizZnakov
End Function
Uporaba pa je seveda temu primerno skrajno preprosta. V vašem konkretnem primeru, bi območje celic vstavili v tekst na sledeč način:

Koda: Izberi vse

 ... programska koda iz gornjega mejla ....

        .From = "<webmaster@matjazev.net>"
        .Subject = "Podatki"
        .TextBody = "To pa je vsebina " & ObmocjeVNizZnakov(Range("A23:N53"))

 ... programska koda iz gornjega mejla ....

lp,
Matjaž Prtenjak
Administrator
sidol
Prispevkov: 5
Pridružen: Po Dec 18, 2006 10:47 pm

Odgovor Napisal/-a sidol »

Pozdravljeni!

Hvala za odgovor.
Zanima pa me še nekaj:
Po zagonu makra so v mailu vrstice tabele razporejene v drugačnem vrstnem redu kot v excelovem dokumentu (ali na razporeditev vpliva to, da so v excelovem dokumentu določene vrstice prazne?)
Ali je možno doseči, da so vrednosti med posameznimi celicami v mailu razporejene bolj urejeno. (npr. vrednost iz celice B41 naj bi bila točno pod
vrednostjo iz celice B40). Sedaj se namreč vrednost naslednje celice v vrstici začne takoj za piko.
V tabeli imam tudi besede s šumniki. Ali je šumnike možno prenesti v mail?
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Mogoče kdo ve, zakaj mi makro ne deluje :?:
Run-time error '-2147220960 (80040221)
The "SendUsing" configuration value is invalid.
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Kljuka, odgovor boste našli v sledeči tematiki: http://www.matjazev.net/forum/viewtopic.php?t=126

Sidol, Za oblikovanje ste odgovorni sami, kot sem vam v odgovoru tudi napisal. Vmakru, ki sem vam ga poslal, recimo med vrstice tlačim tabulatorje in seveda, če je tekst v določeni celici daljši od tabulatorja so posledično zamaknjene vse celice. Lahko recimo vse celice formatirate tako, da bodo zavzele 20 znakov in bodo desno poravnane, kot je to v priloženem makru:

Koda: Izberi vse

  For Each vrstica In Obmocje.Rows
    For Each celica In vrstica.Cells
      nizZnakov = nizZnakov & Right(String(20, " ") & celica.Value, 20)
    Next
    nizZnakov = nizZnakov & Chr(10) & Chr(13)
  Next
Kar pa se tiče šumnikov, pa nima zveze z Excelom, temveč z e-pošto. V e-poštnem sporočilu je potrebno povedati, kateri nabor znakov uporabljate in za kakšen način pošte gre.... Kar pa je malce prekompleksno za tole tematiko :)
lp,
Matjaž Prtenjak
Administrator
Odgovori