VBA code combineren in outlook (voor nieuwe mail)

Status
Niet open voor verdere reacties.

kareltje001

Gebruiker
Lid geworden
20 apr 2013
Berichten
5
Hallo

Ik wil een macro maken waarmee een mail kan worden gestuurd naar een vaste afzender, en dan wil ik een userform met listbox waarmee ik de gekozen tekst in de onderwerp regel krijg.
Ik heb wel een vba voorbeeld gevonden waarmee ik een mail kan beantwoorden, en via de listbox mijn gewenste code in de onderwerpregel kan zetten.
Ook een vba code om een nieuwe mail te maken met vaste afzender.
Maar de combinatie maken zodat ik met een druk op de knop een nieuwe mail aanmaakt, er een listbox verschijnt waarmee ik mijn tekst aan de onderwerp regel kan toevoegen lukt me niet. Ik hoop dat iemand me hier mee kan helpen.

Code voor nieuwe mail:

Set objMsg = Application.CreateItem(olMailItem)

With objMsg
.To = "planner@planning.nl"
.Subject = "Eigen Tekst"
.BodyFormat = olFormatPlain ' send plain text message
.Display
End With

Set objMsg = Nothing
End Sub



En de code om een mail te beantwoorden en dan kiezen via listbox wat er in de onderwerpregel komt te staan;

Public lstNo As Long

Public Sub ChangeSubjectOnReply()

Dim objItem As Object
Dim oMail As Outlook.MailItem

Set objMsg = Application.CreateItem(olMailItem)
Set oMail = Application.ActiveExplorer.Selection(1).Reply

oMail.Display

UserForm1.Show

' MsgBox "user chose " & lstNo & " from combo"

Select Case lstNo
Case -1
oMail.Subject = objItem.Subject
Case 0
oMail.Subject = "Subject 1"
Case 1
oMail.Subject = "Subject 2"
Case 2
oMail.Subject = "Subject 3"
Case 3
oMail.Subject = "Subject 4"
Case 4
oMail.Subject = "Subject 5"
End Select
End Sub
 
Doe ons een lol, en maak de code op met de CODE knop, dan ziet hij er wat beter leesbaar uit.
 
Je hebt gelijk, ik heb het aangepast


Code:
Set objMsg = Application.CreateItem(olMailItem)

With objMsg
.To = "planner@planning.nl"
.Subject = "Eigen Tekst"
.BodyFormat = olFormatPlain ' send plain text message
.Display
End With

Set objMsg = Nothing
End Sub


Code:
Public lstNo As Long

Public Sub ChangeSubjectOnReply()

Dim objItem As Object
Dim oMail As Outlook.MailItem

Set objMsg = Application.CreateItem(olMailItem)
Set oMail = Application.ActiveExplorer.Selection(1).Reply

oMail.Display

UserForm1.Show

' MsgBox "user chose " & lstNo & " from combo"

Select Case lstNo
Case -1
oMail.Subject = objItem.Subject
Case 0
oMail.Subject = "Subject 1"
Case 1
oMail.Subject = "Subject 2"
Case 2
oMail.Subject = "Subject 3"
Case 3
oMail.Subject = "Subject 4"
Case 4
oMail.Subject = "Subject 5"
End Select
End Sub
 
Je hebt de keuzelijst op je formulier gezet; het lijkt een stuk slimmer om de hele code van verzenden vanaf dat formulier te starten. Ik zie niet hoe je dat nu geregeld hebt. Wellicht kun je een bestand meesturen met wat je tot nu toe hebt gemaakt.
 
Omdat ik nu voor het eerst vanuit outlook iets probeer te maken weet ik niet hoe ik dat dan als bestand moet posten.
Maar ik heb een userform waarin een keuzelijst met invoervak en knop zit;daaraan hangt dan deze code;


Code:
Private Sub ComboBox1_Change()

End Sub

Private Sub UserForm_Initialize()
  With ComboBox1
    .AddItem "Subject 1"
    .AddItem "Subject 2"
    .AddItem "Subject 3"
    .AddItem "Subject 4"
    .AddItem "Subject 5"
    .AddItem "no change"
End With
End Sub
 
Private Sub CommandButton1_Click()
    lstNo = ComboBox1.ListIndex
    Unload Me
End Sub

En dit als code voor de macro ;

Code:
Public lstNo As Long
Public Sub ChangeSubjectOnReply()
Dim objItem As Object
Dim oMail As Outlook.MailItem
Set objItem = GetCurrentItem()
Set oMail = Application.ActiveExplorer.Selection(1).Reply
oMail.Display
UserForm1.Show
' MsgBox "user chose " & lstNo & " from combo"
Select Case lstNo
Case -1
oMail.Subject = objItem.Subject
Case 0
oMail.Subject = "Subject 1"
Case 1
oMail.Subject = "Subject 2"
Case 2
oMail.Subject = "Subject 3"
Case 3
oMail.Subject = "Subject 4"
Case 4
oMail.Subject = "Subject 5"
End Select
End Sub
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
End Select
Set objApp = Nothing
End Function

Hiermee beantwoord ik een ingekomen mail, en kan dan een onderwerp toevoegen via de list box.
Maar ik wil beginnen met een nieuwe mail, waar wel standaard al de "aan" is gevuld (bv planner@planning.nl) en dan onderwerp via listbox.

Ik hoop dat dit het wat duidelijker maakt, als ik het op een andere/ betere manier kan doen dan hoor ik het graag.
 
Ik heb heb ondertussen wel een mogelijkheid om een mail te sturen vanuit excel, maar vind het maar behelpen. Dus als er nog iemand is die weet hoe ik het rechtstreeks kan vanuit outlook dan hoor ik het graag
 

Bijlagen

  • Mailen met onderwerp.xlsm
    30,8 KB · Weergaven: 33
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan