Outlook mail gegevens naar Excel

Status
Niet open voor verdere reacties.

mderking

Gebruiker
Lid geworden
18 sep 2005
Berichten
61
Ik ben nogal slecht op het gebied van VBA (ken de basis, maar gebruik het zelfden), en nu kom ik opeens het punt tegen om het eens te gaan gebruiken.

Volgende is mijn doel:
Ik gebruik Outlook office 2003 met een exchange e-mail acount. Hierbij wil ik graag een 2 tal gegevens uitlezen en koppelen met elkaar.

1) Ik wil datum uitlezen van het ontvangst van een e-mail bericht in de inbox. Deze datum, te samen met het onderwerp moet gecopierd worden naar een 2 tal Excel kolomen

2) Bij het beantwoorden van een mailtje (dus het plaatsen in de send items box) wil ik ook deze datum en topic registreren

3) Ik wil dat deze twee met elkaar gekoppeld worden in een 3e kolom. Onderwerp van verstuurde item en ontvangen item is in principe gelijk, op de eerste 5 en laatste 10 karakters na


Doel hiervan is om vast te stellen in outlook, voor elk onderwerp, hoeveel tijd er zit tussen ontvangst van de mail door de mail server, en het daadwerkelijk afhandelen van de mail.

Ik heb alvast een en ander opgezocht over dit soort dingen, maar ik ben nog niet tegengekomen hoe ik deze datums kan opvragen. Ook weet ik niet hoe ik een middelste deel van de 2 subjecten kan controleren met elkaar, om te zien of het om dezelfde mail gaat.

Code snippers die ik tot nu toe gevonden heb zijn de volgenden:
Code:
path = "C:\test.xls"

Dim ex as object 
Set ex = CreateObject("excel.application") 
ex.workbooks.Open FileName:= path 
ex.activeWorkbook.sheets("sheet1").Range("email_subject") = subject 
ex.activeWorkbook.sheets("sheet1").Range("kolomnaam?") = quote ??
ex.activeWorkbook.save

Lijkt me dat die Range gaat om de naam dat je in de 1e rij plaats ofzo? Durf het zo niet te zeggen. Misschien dat er hier wat Macro Goeroe's aanwezig zijn die me een schop de goede richting op kunnen geven?

Alvast bedankt,
Mark
 
Ik zie dat je een stuk van mijn code hebt gevonden, daar kan ik wel wat uitleg bij geven:

range("tekst") is een cel. Ik heb een aantal cellen een naam gegeven, maar je kunt daar ook gewoon het celnummer invoeren: range("A1") bv.

subject en quote zijn beide variabelen die ik zelf aangemaakt heb (de gegevens van de mail worden dus eerder al opgehaald), en dat heb ik als volgt gedaan:
Code:
'email-data ophalen
    Set myApp = CreateObject("Outlook.Application")
    Set bericht = myApp.ActiveInspector.CurrentItem
    
    subject = bericht
    sender = bericht.SenderEmailAddress
    body = bericht.body
    quote = bericht.reply.body
Deze code haalt dus de gegevens op van het bericht wat je op dat moment open hebt staan.
 
Laatst bewerkt:
Ik wil van een specifiek bericht wat gegevens weergeven. Ik heb tot dusver de volgende code:

Code:
Sub LeesMailData()

    ' effe Dimmen
    Dim myAPP As Outlook.Application
    Dim bericht As Outlook.MailItem
    Dim Subject As String
    Dim Sender As String
    Dim Body As String
    Dim DateReceived As Date
    Dim DateSend As Date
    
    ' Outlook Bericht lezen
    Set myAPP = CreateObject("Outlook.Application")
    Set bericht = myAPP.ActiveInspector.CurrentItem
      
    ' Waarden in variabelen stoppen
    Subject = bericht
    Sender = bericht.SenderEmailAddress
    Body = bericht.Body
    
    ' Schop er een bericht uit.
    MsgBox "Subject is: " & Subject & " en de sender is : " & Sender & " ENDE "
    
End Sub

Ootlook klaag echter over dat er een With statement zou moeten zijn, en de debug geeft hierbij de regel Set Bericht aan.

Ik weet alleen niet wat ik hier nu precies mis. Ik start deze sub door de in de VB editor de sub aan te klikken, en dan te kiezen voor F5

Er zit volgensmij wel een fout in de DIM, maar dit weet ik ook niet zeker. Mijn VBA kennis is nogal beperkt, dus heb dit grotendeels gecreerd door knip en plakwerk van delen van scripts.

De msgbox staat daar, puur als test om te zien of het gelukt is. Die gaat er weer uit, op het moment dat de rest van de code werkt.

Wie ooh wie kan mij (of deze code ;-) ) Debuggen?

m.v.g,
Mark
 
Laatst bewerkt:
Het is in de tussentijd erg stil geworden hier :-)

Even simpel toegelicht wat de bedoeling is, onderaan staat de vraag nogmaals:

De Vraag:
Hoe maak ik een nieuwe knop, of pas ik een oude knop aan, zodat een stuk VBA wordt uitgevoerd na het klikken van de knop?

Uitleg/idee/toepassing
Van alle mail die ik binnenkrijg wil ik registreren wat het tijdstip en datum is van ontvangst (Dus wanneer heeft de andere partij deze verzonden). Ook het onderwerp sla ik op. laatste wat ik opsla, is de datum (geen tijd), dat ik het mailtje heb beantwoord.

Bedoeling is om deze 4 zaken naar kolomen A, B, C en D van document "text.xls" in sheet "sheet1" komt te staan. Deze gegevens moeten opgeslagen worden op het moment dat ik het mailtje beantwoord, dus als trigger zou de knop "Reply To All" gebruikt kunnen worden.

Wat ook mag (misschien zelfs een voorkeur) is dat we een eigen knop in excel toevoegen, die deze actie + de reply all actie gelijktijd start (dat je dus een knop hebt met Reply to All + Log de tijden en een knop Reply to All zonder log de tijden.

Heeft iemand een manier waarop ik dit kan doen. Een aantal van de gegevensverwerkings scriptjes heb ik hier en daar al kunnen vinden, en op de Helena site gezien.

Echter het gedeelte van een speciale knop maken, of macro uitvoeren op 1 bericht tijdens "reply to all klikken" kan ik niet vinden. Dus wie weet daar de regel of script of dergelijke voor?

De Vraag:
Hoe maak ik een nieuwe knop, of pas ik een oude knop aan, zodat een stuk VBA wordt uitgevoerd na het klikken van de knop?

Alvast bedankt,
Mark
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan