Regelinhoud versturen uit Excel met outlook naar e-mail adres

Status
Niet open voor verdere reacties.

melderksen

Gebruiker
Lid geworden
10 mei 2016
Berichten
12
Geachte lezer,

Ik heb kennis van Excel en ook een beetje kennis van VBA en heb al diverse code's geschreven.
Ik werk met Excel 2010 en Outlook 2010 in Win7.

Voor ons kluppie wil ik uit een Excel bestand per regel de regel inhoud zenden naar een lid.
Ook zou ik daar de kopregel bij willen zien in de mail.

Ik heb al een arsenaal aan you tube filmpjes gekeken , maar vind daarin geen antwoord op mijn vraag.
Die gaan meestal uit van 1 adres of de hele blad inhoud of bestand.

Ik heb een test bestand bijgevoegd waarin mijn, in basis, te verzenden voorbeeld info staat.
Bekijk bijlage mail tabel forum voorbeeld.xlsx


Is er een knappe kop die me op weg kan/wil helpen.
Want ik kom er niet uit.
Het zou fijn zijn als iemand voor mij de basis op zet.

Hoor het graag
Groet Mel
 
Laatst bewerkt:
Edmoor, dank voor je reactie.
Buiten het feit dat ik you tube filmpjes heb gekeken, heb ik ook de site van Ron de Bruin bekeken.
Maar ook daar zie ik niet wat ik wil.
Misschien heb je een diepere link van hem waar ik dat dan zoeken moet, ik vond het niet.
 
Wat is dan je exacte probleem? Want hoe je een mail moet versturen zal duidelijk zijn als je de site van Ron bekeken hebt.
 
Je kunt op basis van de codes van Ron inderdaad makkelijk uitvissen hoe je per rij kan mailen. Een voorzetje:

Code:
Dim i As Integer
Dim Source As Range, kopRij As Range, rng As Range
    Set Source = Cells(1).CurrentRegion  
    Set kopRij = Source.Rows(1)
    For i = 2 To Source.Rows.Count
        Set rng = Source.Rows(i)
        MsgBox rng.Address
    Next i
Hiermee lees je dus de eerste rij als koprij in, en vervolgens elke rij apart. De combinatie kun je dan mailen.
 
in een excel blad staat een email adres in kolom A1, de info achter dit adres moet (liefst met kopregel) verstuurd worden naar deze persoon
kolom A2, de info achter dit adres moet (liefst met kopregel) verstuurd worden naar deze persoon
kolom A3, de info achter dit adres moet (liefst met kopregel) verstuurd worden naar deze persoon
enz.

De voorbeelden gaan, voor zover ik het zie, uit van het versturen naar 1 in de VBA code ingevuld adres.
 
En daarom heb ik een stukje code neergepend waarin je wél een aparte regel kan uitlezen. Je geeft zelf aan dat je enigszins kan programmeren; dan moet je in staat zijn om die variant in te bouwen. Vooral omdat je het mailen kunt doen op de plaats van de msgbox; daarin staan namelijk de 2 rijen die je steeds nodig hebt. Je mailt dus steeds één regel.
 
En om te laten zien dat het in beginsel gewoon met de code van RdB kan, hier de volledig werkende versie:
Code:
Dim Source As Range, kopRij As Range, rng As Range
Dim Dest As Workbook
Dim wb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim OutApp As Object
Dim OutMail As Object
Dim i As Integer

    On Error Resume Next
    Set Source = Cells(1).CurrentRegion  ''.Columns(1).Resize(, 13).Name = "Test"
    If Source Is Nothing Then
        MsgBox "The source is not a range or the sheet is protected, please correct and try again.", vbOKOnly
        Exit Sub
    End If

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set wb = ActiveWorkbook
    Set Source = Cells(1).CurrentRegion  ''.Columns(1).Resize(, 13).Name = "Test"
    Set kopRij = Source.Rows(1)
    Set OutApp = CreateObject("Outlook.Application")
    
    For i = 2 To Source.Rows.Count
        Set rng = Source.Rows(i)
        Set Dest = Workbooks.Add(xlWBATWorksheet)
        kopRij.Copy
        With Dest.Sheets(1)
            .Cells(1, 1).PasteSpecial Paste:=8
            .Cells(1, 1).PasteSpecial Paste:=xlPasteValues
            .Cells(1, 1).PasteSpecial Paste:=xlPasteFormats
            .Cells(1, 1).Select
            Application.CutCopyMode = False
        End With
        rng.Copy
        With Dest.Sheets(1)
            .Cells(2, 1).PasteSpecial Paste:=8
            .Cells(2, 1).PasteSpecial Paste:=xlPasteValues
            .Cells(2, 1).PasteSpecial Paste:=xlPasteFormats
            .Cells(2, 1).Select
            Application.CutCopyMode = False
        End With
        TempFilePath = Environ$("temp") & "\"
        TempFileName = "Selection of " & wb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss")
        FileExtStr = ".xlsx": FileFormatNum = 51
        Set OutMail = OutApp.CreateItem(0)
        With Dest
            .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
            On Error Resume Next
            With OutMail
                .To = "ron@debruin.nl"
                .CC = ""
                .BCC = ""
                .Subject = "This is the Subject line"
                .Body = "Hi there"
                .Attachments.Add Dest.FullName
                .Display '.Send   'or use .Display
            End With
            On Error GoTo 0
            .Close savechanges:=False
        End With
        Kill TempFilePath & TempFileName & FileExtStr
    Next i

    Set OutMail = Nothing
    Set OutApp = Nothing
 
Ik ben dagen bezig geweest, maar het is opgelost. En idd met grote hulp van Ron de bruin site :)
Bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan