Toon posts:

[Excel 2002 SP3] Email button in Excel maken

Pagina: 1
Acties:
  • 412 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik wil een button maken in Excel. Als ik op deze button druk, zou er een email (Outlook) moeten komen met een aantal geaddresseerden, een standaard subject en de tekst moet nog aanpasbaar zijn. Daarna wil ik hem zelf handmatig versturen.

Iemand die me hiermee kan helpen? Ik heb geen ervaring met macro's, dus al dat de oplossing is, graag specificeren hoe ik dat moet doen.


Bedankt allen!!

groeten Nick

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:54
Moet het Excel bestand er als attachment aangeplakt of zo? En ja, macro's zijn de oplossing. Probeer eerst eens uit te vogelen hoe je uberhaubt in excel een e-mail kan laten verschijnen zoals jij het wilt, dan helpt de macro-recorder je een stuk verder. (Eerst opnemen en dan de code eens proberen te lezen, Alt-F11, staat in Module1)

[ Voor 82% gewijzigd door onkl op 09-01-2006 21:16 ]


Verwijderd

Topicstarter
nee excel file hoeft niet gemaild te worden. Hij moet gewoon een standaard mailtje openen, met tekst en geadresseerden erin. en die wil ik zelf handmatig mailen.

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:54
Ik zou hier eens kijken. Er is in dezes geen verschil tussen word en excel.
Je moetb iig een referentie aanleggen naar outlook (zier link) en dan stellen zij voor:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Sub SendDocumentInMail()

Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem

On Error Resume Next

'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    'Outlook wasn't running, start it from code
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
    'Set the recipient for the new email
   .To = "recipient@mail.com"
    'Set the recipient for a copy
    .CC = "recipient2@mail.com"
    'Set the subject
    .Subject = "New subject"
    'The content of the document is used as the body for the email
    .Body = ActiveDocument.Content
    .Send
End With

If bStarted Then
    'If we started Outlook from code, then close it
    oOutlookApp.Quit
End If

'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub


Daarmee wordt het mailtje verstuurd en outlook evt. weer afgesloten. Als jij handmatig wilt versturen, moet je denk ik dit aanpassen:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Sub SendDocumentInMail()

Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem

On Error Resume Next

'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    'Outlook wasn't running, start it from code
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If

'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)

With oItem
    'Set the recipient for the new email
   .To = "recipient@mail.com"
    'Set the recipient for a copy
    .CC = "recipient2@mail.com"
    'Set the subject
    .Subject = "New subject"
    'The content of the document is used as the body for the email
    '.Body = ActiveDocument.Content->weghalen
    '.Send->weghalen
End With
'If we started Outlook from code, then close it ->weghalen
'Clean up->dat kan dus niet meer
End Sub

Misschien moet je nog iets doen met het zichtbaar maken van je mailtje, maar probeer eerst dit eens. (En let er in je windows process manager, Ctrl-Alt-Del, op of outlook plots verschijnt zonder een venster weer te geven)

  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Ik denk dat onkl's code er goed uitziet. Toch wil ik ook nog even wijzen op de website van Ron de Bruin (een Microsoft MVP):

http://www.rondebruin.nl/mail/add-in.htm

Hij heeft een E-mail Add-In geschreven. Misschien is het iets voor je?
(Ik kan het niet zelf testen ivm firewalls hier op mijn werk.)

[ Voor 2% gewijzigd door CoRrRan op 10-01-2006 15:25 . Reden: vvvvvvv Thanks for checking onkl! vvvvvvv ]

-- == Alta Alatis Patent == --


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:54
Die add-in oogt OK, maar de standaardfuncties lijken beperkt tot sheets etc. versturen.
Zag wel in zijn code dat je i.p.v. .Send .Display moet zetten voor het zichtbaar maken van het mailtje.
TS, kijk eens naar de codevoorbeelden in de link van rondebruin. Die helpen je allicht verder. (hier)

[ Voor 29% gewijzigd door onkl op 10-01-2006 15:23 ]

Pagina: 1