• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro Taak Outlook via mail verzenden

Status
Niet open voor verdere reacties.

Vendeburk

Gebruiker
Lid geworden
21 jan 2014
Berichten
41
Beste Lezers,

Ik ben opzoek naar eigenlijk 2 macro's in 1 bestand.

1e macro is een om een pdf te maken alleen het afdruk bereik is steeds anders.

Afdruk bereik begint in Cel B3 en eindigt op E## = de laatste rij die is gevuld.

2e macro die ik zoek is een taak in Office Outlook

Graag zou ik een Outlook taak willen mailen en de volgende gegevens moeten dan zijn gevuld:
Taak Omschrijving: Waarde van Cel I6
Taak begint op: Waarde van Cel I7
Taak vervalt op: Waarde van Cel I8
Taak herinnering: Waarde van Cel I9

Graag zou ik dan de PDF en de taak willen mailen naar het mail adres in Cel I4 en in de CC het mail Adres in Cel I5
Het zou ook mooi zijn als de taak ook gelijk in mijn eigen Outlook staat. Alleen ik heb meerdere accounts in Outlook, dus deze moet dan ook wel in het juiste account staan.

Wie zou mij kunnen helpen met een macro?

Alvast bedankt
 

Bijlagen

Van de site van snb:

Als je dit wat aanpast kom je er denk ik wel.

Code:
Sub taakverzoek_nieuw()
  c00 = "controle 7"
  c01 = Date +7"
  c02 = DateValue(""04-05-2019") + TimeValue("08:00:00"
  c03 = "snb@forums.eu"

  With CreateObject("Outlook.Application").CreateItem(3)
     .assign
     .subject = c00
     .StartDate = c01
     .ReminderSet = True
     .ReminderTime = c02
     .Recipients.Add c03
     .send
  End With
End Sub
 
Laatst bewerkt:
Ik heb wat aangepast voor de taak, maar hij werkt niet.
Code:
Sub taakverzoek_nieuw()
  c00 = Sheets("Blad3").Range("i6")
  c01 = Sheets("Blad3").Range("i7")
  c02 = Sheets("Blad3").Range("i6")
  c03 = Sheets("Blad3").Range("i4")

  With CreateObject("Outlook.Application").CreateItem(3)
     .assign
     .Subject = c00
     .StartDate = c01
     .ReminderSet = True
     .ReminderTime = c02
     .Recipients.Add c03
     .send
  End With
End Sub

Hij geeft bij deze regel een fout With CreateObject("Outlook.Application").CreateItem(3)
 
Gebruik je outlook? Misschien de microsoft outlook library even inschakelen bij VBA verwijzingen.
 
Vaak is het ook handig om de betreffende foutmelding er bij te vermelden.
 
Je bijlagen werken niet.
Klik op Ga geavanceerd en gebruik dan de paperclip om bijlagen toe te voegen.
 
Ik hoop dat de bijlages het nu wel doen.

Ik vermoed na wat zoek werk dat het te maken heeft met dat ik op een Mac werk (macOS Big Sur Versie 11.4) Microsoft Excel voor Mac Volumelicentie 2019 (Versie 16.51).


Daarom heb ik op een windows machine de macro getest.
Code:
Sub taakverzoek()
'C00 = i4 Taak Onderwerp
  c00 = Sheets("Pdf").Range("i5")
'C01 = i5 Taak begint op datum
  c01 = Sheets("Pdf").Range("i6")
'C02 = i8 Taak Herrinnering op datum
  c02 = Sheets("Pdf").Range("i8")
'C03 = i3 Email adres Inkoop
  c03 = Sheets("Pdf").Range("i3")
'C04 = i4 Email adres Magazijn
  c04 = Sheets("Pdf").Range("i4")
'C05 = i9 Taak Omschrijving
  c05 = Sheets("Pdf").Range("i9")

  With CreateObject("Outlook.Application").CreateItem(3)
     .assign
     .Subject = c00
     .StartDate = c01
     .ReminderSet = True
     .ReminderTime = c02
     .Recipients.Add c03
     .Body = c05
     .Send
  End With
End Sub

Deze code werkt en de taak wordt opgeslagen in Outlook.

ik heb allee nu nog een probleem met de volgende code
Code:
Sub Mail_PDF()

Dim Pad As String
Dim Bst As String
Dim Otv As String
Dim Otvc As String

Dim OutApp As Object
Dim OutMail As Object

' Map waar bestand staat
Pad = Sheets("Pdf").Range("i9")
'Bestandsnaam PDF
Bst = Sheets("Pdf").Range("i5")

' Email Aan
Otv = Sheets("Pdf").Range("i3")
' Email CC
Otvc = Sheets("Pdf").Range("i4")


'PDF Maken

With Sheets("Pdf")
    Range("B3:F" & .Cells(.Rows.Count, "F").End(xlUp).Row).ExportAsFixedFormat xlTypePDF, Pad & Bst & ".pdf", , , , , , 1
End With

'Email maken
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
.to = Otv
.CC = Otvc
.BCC = ""
.Subject = "Bestelling"
.Body = "Hierbij de bestelling voor ons magazijn (Zie bijlage)" & vbNewLine & vbNewLine & "Met vriendelijke Groet" & vbNewLine & vbNewLine & "Inkoop Kiremco"


.Attachments.Add Pad & "\" & Bst
.Send
End With

End Sub

Het gaat fout in deze regel.
Range("B3:F" & .Cells(.Rows.Count, "F").End(xlUp).Row).ExportAsFixedFormat xlTypePDF, Pad & Bst & ".pdf", , , , , , 1
Mijn blad is tot rij gevuld met formules, dus hij gebruikt al deze rijen. Alleen de formules hebben als waarde "".
Dus eigenlijk wil ik dat deze regel kijkt tot de laatste rij waar wel een waarde ingevuld is.

Alvast bedankt.
 

Bijlagen

  • Schermafbeelding 2021-08-02 om 18.15.51.png
    Schermafbeelding 2021-08-02 om 18.15.51.png
    55,4 KB · Weergaven: 16
  • Schermafbeelding 2021-08-02 om 18.17.18.png
    Schermafbeelding 2021-08-02 om 18.17.18.png
    21,8 KB · Weergaven: 14
  • Schermafbeelding 2021-08-02 om 18.17.46.png
    Schermafbeelding 2021-08-02 om 18.17.46.png
    31,4 KB · Weergaven: 15
Bij MacOS kan ik niet helpen helaas.
Maar volgens mij wordt daar ActiveX niet of niet volledig ondersteund.
 
@edmoor

Dat had ik ook al gelezen, daarom heb ik de code op een windows machine getest.
Nu wordt er straks met dit excel op windows machines gewerkt, dus het is alleen lastig voor mij om het te testen.
 
Bedankt voor de tip, maar hier ben ik van op de hoogte.
Ik heb alleen een apple met een M1 Chip, dus nog niet alle programma's werken nog.

Moet denk ik nog wat geduld hebben.
 
Ik heb de macro bijna werkend.

Op dit moment heb ik dit:
Code:
Sub taakverzoek()
'C00 = i4 Taak Onderwerp
  c00 = Sheets("Pdf").Range("i5")
'C01 = i5 Taak begint op datum
  c01 = Sheets("Pdf").Range("i6")
'C02 = i8 Taak Herrinnering op datum
  c02 = Sheets("Pdf").Range("i8")
'C03 = i3 Email adres Inkoop
  c03 = Sheets("Pdf").Range("i3")
'C04 = i4 Email adres Magazijn
  c04 = Sheets("Pdf").Range("i4")
'C05 = i9 Taak Omschrijving
  c05 = Sheets("Pdf").Range("i10")
'C06 = i7 Taak Omschrijving
  C06 = Sheets("Pdf").Range("i7")

  With CreateObject("Outlook.Application").CreateItem(3)
     .assign
     .Subject = c00
     .StartDate = c01
     .ReminderSet = True
     .ReminderTime = c02
     .Recipients.Add c03
     .DueDate = C06
     .Body = c05
     .Send
  End With
End Sub

Wat er nu alleen nog fout gaat is dat de taak in mijn persoonlijk account wordt opgeslagen, want deze is als hoofd account gemaakt in outlook.

Graag zou ik dat de taak wordt opgeslagen in het outlook profiel van inkoop "C03"
Want dit is een gedeelde mailbox voor de gehele afdeling en dan kan iedereen hier gelijk meewerken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan