08. maj 2008 - 20:23
Der er
4 kommentarer
Automatisk generering af mail når excel-dokument åbnes/lukkes
Er det muligt at oprette et Exceldokument, som automatisk generer en mail til en foruddefineret modtager ved åbning af dokumentet?
Er det muligt at oprette et Exceldokument med en makro, som lukker Exceldokumentet og herefter automatisk generer en mail til en foruddefineret
modtager?
Sorry, svarede kun på det halve. Ja det er en bestemt excel-fil som helst ikke må lukkes uden det er meningen, da excel arket i samarbejde med en prisportal henter priserne over i et eksternt program. Der skal gerne sikres beskyttelse og opretholdelse af kommunikationen excel og prisportal imellem. For ellers prissættes udfra historiske priser istedet for realtime priser
Mail i Notes:
Her er et stykke kode jeg bruger når jeg skal sende mails i Notes.
' **************************
' * Lav filnavn *
' **************************
gemmeleg = "Kassedifferencer " & Sheets("Ark1").Range("C8") & " " & Sheets("Ark1").Range("A6") & " - " & Sheets("Ark1").Range("B6")
gemmeleg2 = Sheets("Ark1").Range("A6") & " - " & Sheets("Ark1").Range("B6")
DoEvents
ActiveSheet.Cells.EntireColumn.AutoFit
ActiveSheet.Range("A1").Select
DoEvents
FilNavn = "I:\Kassedifferencer\" & gemmeleg & ".htm"
' **************************
' * Find område *
' **************************
regnkas:
If Len(ActiveSheet.Range("A" & kasrk).Value) = 0 Then kasrk = kasrk - 1: GoTo regnkas
omraade = "A8:" & kolbogstav & kasrk
' **************************
' * Lav fil *
' **************************
With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _
FilNavn, "Ark1", "$A$8:$" & kolbogstav & "$" & kasrk, _
xlHtmlStatic, "kassedifferencer_19281", "")
.Publish (True)
.AutoRepublish = False
End With
'Application.WindowState = xlMinimized
Range("A1").Select
'***************************************************************
'* Send mail
'***************************************************************
'GoTo nosst ' Hvis afsendelse af mails skal springes over.
Dim Maildb As Object 'The mail database
Dim UserName As String 'The current users notes name
Dim MailDbName As String 'The current users notes mail database name
Dim MailDoc As Object 'The mail document itself
Dim AttachME As Object 'The attachment richtextfile object
Dim Session As Object 'The notes session
Dim EmbedObj As Object 'The embedded object (Attachment)
Dim text
Dim Subject As String
Dim Attachment As String
Dim ccrecip(6) As Variant
' **************************
' * Find Butik *
' **************************
sendtil = ""
butrk = Sheets("Butikker").Range("I800").End(xlUp).Row
For i = 1 To butrk
If Left(Sheets("Butikker").Range("I" & i), 5) = Store Then sendtil = CStr(Sheets("Butikker").Range("I" & i))
Next i
If sendtil = "" Then MsgBox "Kunne ikke finde butikken": End
' **************************
' * Find DC *
' **************************
ccrecip(0) = ""
ccrecip(1) = ""
ccrecip(2) = ""
dcrk = Sheets("Butikker").Range("D600").End(xlUp).Row
For i = 1 To dcrk
If Sheets("Butikker").Range("D" & i) = Distrikt Then ccrecip(0) = CStr(Sheets("Butikker").Range("E" & i))
Next i
If ccrecip(0) = "" Then MsgBox "Kunne ikke finde pågældende DC": End
Dim SaveIt As Boolean
SaveIt = True
' **************************
' * MailBody *
' **************************
text = ("Til " & Store & ".") & Chr(13) & Chr(13)
text = text & ("Hermed fremsendes butikkens kassedifferencer for perioden " & gemmeleg2 & ".") & Chr(13)
Subject = CStr(gemmeleg)
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
'Already open for mail
Else
Maildb.OPENMAIL
End If
'Set up the new mail document
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.Form = "Memo"
MailDoc.sendto = sendtil
MailDoc.CopyTo = ccrecip
MailDoc.Subject = Subject
' **************************
' * Vedhæft *
' **************************
Attachment = CStr(FilNavn)
If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
End If
MailDoc.Body = text
MailDoc.SAVEMESSAGEONSEND = SaveIt
'Set up the embedded object and attachment and attach it
'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.send 0, recipient
'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
'send = SendNotesMail("Dagens RUV", filnavn, Recip(10), "Hermed dagens 'Rettelser uden VM'", True)
'Stop
Kill FilNavn ' sletter filen