Bijhouden betalenden

Status
Niet open voor verdere reacties.

Ron001

Gebruiker
Lid geworden
4 dec 2017
Berichten
384
Allen

Ik heb een code waar ik een automatische e-mail met genereer ivm rondvraag cadeau als er een collega op pensioen gaat.

Code:
Sub Pensioen()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)

    strbody = "<font size=""3"" face=""Calibri"">Beste collega's<br><br>" & _
        "Op <b>** maand</b> </font>zal onze zeer gewaardeerde collega <b> NAAM </b> zijn laatste werkdag beleven." & _
        "<br><br>Voor al deze jaren trouwe dienst zouden we graag een cadeau voorzien en vragen hiervoor...& _
        "<br><br><b>Afsluitdatum: </b><font color = #FF0000><b>** maand</b></font>.<br><br>" & _
        "Mvg <br><br>Brent</font>"


        On Error Resume Next
        With OutMail
            .To = ""
            '.BCC = ""
            .Subject = "Pensioen NAAM"
            .HTMLBody = strbody
            .Display   'or use .Send
        End With
        On Error GoTo 0

        Set OutMail = Nothing
        Set OutApp = Nothing
   
   
End Sub

Dit werkt goed, alleen moet ik nu ook bijhouden wie mee sponsort/betaald heeft, dit doe ik voorlopig handmatig in een Excelsheet.
Maar kan er bij het verzenden van deze email geen Excel gegenereerd worden op mijn bureaublad met als naam ".Subject" in dit geval Pensioen naam. Alsook dat alle emailadressen (TO - CC - BCC) hierin komen te staan onder elkaar, waar ik dan telkens een vinkje kan achter zetten/aanvinken als iemand betaald heeft.

Dan geeft dit een duidelijk overzicht.

Of wat is er mogelijk?

Alvast bedankt!
 
Probeer dit eens:

Code:
Sub Pensioen()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)

    strbody = "<font size=""3"" face=""Calibri"">Beste collega's<br><br>" & _
        "Op <b>** maand</b> </font>zal onze zeer gewaardeerde collega <b> NAAM </b> zijn laatste werkdag beleven." & _
        "<br><br>Voor al deze jaren trouwe dienst zouden we graag een cadeau voorzien en vragen hiervoor...& _
        "<br><br><b>Afsluitdatum: </b><font color = #FF0000><b>** maand</b></font>.<br><br>" & _
        "Mvg <br><br>Brent</font>"


        On Error Resume Next
        With OutMail
            .To = ""
            '.BCC = ""
            .Subject = "Pensioen NAAM"
            .HTMLBody = strbody
            .Display   'or use .Send

    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Pad\Pad\Pad\" & .Subject & ".xlsb" , FileFormat:=xlExcel12, _
        CreateBackup:=False

        End With
        On Error GoTo 0

        Set OutMail = Nothing
        Set OutApp = Nothing
 
Bedankt!
De file wordt al automatisch op het bureaublad aangemaakt.
Maar kunnen alle namen van de geadresseerden er nog in?

Bv: In Cel A1 het woord "Namen", vanaf cel A3 alle namen van de geadresseerden (is variabel).
In Cel B1 het woord "Betaald", Vanaf Cel B3 standaard "NEEN" in rode kleur , dit kan je veranderen in "JA", wordt dan groene kleur.

Ik weet niet of dit überhaupt mogelijk is....
 
Ik heb iets geknutseld dat misschien handiger is:
 

Bijlagen

  • Email Collega`s.xlsb
    26,3 KB · Weergaven: 36
Bedankt voor de tijd en moeite...
Maar is mijn vraag ook mogelijk?
 
Toch denk ik dat het antwoord van mvdvlist een antwoord is op je vraag een beetje afhankelijk van hoe je macro gebruikt wordt.
Is de ".to" & eventueel de ".CC" en "BCC" een opsomming van x emailadressen, dan kan daarmee verder gestoeid worden.
Is het telkens 1 emailadres in een loop, dan is het aanmaken van het excelbestand buiten die loop te doen.

Dus hoe verstuur je je emails, éénmalig naar tig adressen of x maal 1 emailadres ?
 
De ".TO", ".CC" en ".BCC" zijn inderdaad een opsomming van een x aantal adressen.

Maar kunnen alle namen van de geadresseerden er nog in?

Bv: In Cel A1 het woord "Namen", vanaf cel A3 alle namen van de geadresseerden (is variabel).
In Cel B1 het woord "Betaald", Vanaf Cel B3 standaard "NEEN" in rode kleur , dit kan je veranderen in "JA", wordt dan groene kleur.

Hier is het mij vooral om te doen, dat alle emailadressen/de naam uit het e-mailadres naar waar een e-mail wordt gestuurd onder elkaar in de "nieuw aangemaakte file" opgelijst worden vanaf cel "A3" en dan bovenstaande quote erachter komt.
 
voeg de rode tekst toe.
normaal is ";" de separator.
Code:
   Workbooks.Add                                 'nieuwe map
[COLOR="#FF0000"] s = .To & IIf(Len(.cc), ";" & .cc, "") & IIf(Len(.bcc), ";" & .bcc, "")   'samenvoegen van to, cc en bcc met een ;
   MsgBox s
    With Range("A1")                              'vanaf deze cel
      .Resize(, 2).Value = Array("Namen", "Betaald")   '2 koppen
      sp = Split(s, ";")                         'uitsplitsen op die ;
      .Offset(2).Resize(UBound(sp) + 1).Value = Application.Transpose(sp)   'wegschrijven
   End With
[/COLOR]   ActiveWorkbook.SaveAs Filename:="C:\Pad\Pad\Pad" & .Subject & ".xlsb", FileFormat:=xlExcel12, CreateBackup:=False   'save as
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan