PDF in mail meesturen

Status
Niet open voor verdere reacties.

RobTHMG

Gebruiker
Lid geworden
29 nov 2008
Berichten
82
Beste VBA-experts,

Ik heb het volgende probleem.

Ik heb in excel 365 een macro gemaakt om een PDF dat is opgeslagen in een bedrijfs.sharepoint-map in een mail te zetten die in excel opent.
Dat gaat allemaal goed, behalve het toegevoegde pdfbestand.

Het bestand wordt wel als attachment toegevoegd , maar als link naar de sharepointmap en niet als 'los bestand' dat door iemand die niet in die bedrijfs-sharepoint toegang heeft, bij kan.

hoe kan ik de macro zo veranderen dat in de mail een pdf-bestand komt dat kan worden opgeslagen door de lezer van de email?
(dus verzenden als niet cloud link/bestand)

Alvast dank voor de ondersteuning
Rob



Code;

Code:
Sub Send_Range_CONTRACTviamailV1()
   
bstnm = ActiveSheet.Range("C56").Value & "-V1-" & Range("C62").Value & ".pdf"
Map = "https://bedrijf.sharepoint.com/sites/ZIBPOOpleidingzijinstroominhetberoepleraarPrimairOnderwijs/Gedeelde%20documenten/Scholingscontracten/Te_Archiveren/"
Bestand = Map & bstnm

   
   ' Een cellenbereik selecteren in het actieve werkblad.
 With ActiveSheet.Range("A1:I31").Select
   ' De envelop weergeven in de actieve werkmap.
   ActiveWorkbook.EnvelopeVisible = True
  End With
  
   ' Een optionele toelichting toevoegen om
   ' een koptekst op te nemen in het e-mailbericht. Hiermee worden ook de regels
   ' Aan en Onderwerp ingesteld. Tot slot wordt het bericht
   ' verzonden.
   With ActiveSheet.MailEnvelope
      .Item.To = ActiveSheet.Range("O15").Value
      .Item.Subject = "Tripartiete Contract V1 "
      .Item.Attachments.Add Bestand
     
End With
  
End Sub
 
Laatst bewerkt door een moderator:
Kopieer het bestand eerst naar je lokale schijf en geef die dan als bijlage op.
 
Dank voor je suggestie, maar de bedoeling is nu juist om handelingen te minimaliseren

Rob
 
Uiteraard.
Ik bedoel ook dat je dat in de code moet doen.
 
Ah,

misverstand.
het rare is nu dat als ik een bestand in de shrepointmap dat een vaste naam heeft toevoeg aan de mail, dan is het gewoon een pdf die de geaddresseerde kan downloaden en lezen.

Ik heb in de vba code van dit probleem een regel om de juiste naam van het bestand samen te stellen en daardoor schijnt er iets te gebeuren waardoor ik een onlinebestand verstuur.

ik zoek dus een oplossing, zonder eerst een bestand (ook niet automatisch) áls los pdf-bestand' te kunnen sturen


dank voor je suggestie

rob
 
Edmoor,

kan je me op weg helpen met de vba code om een bestand te copieren uit sharepoint en op te slaan op de c:/temp ?
 
probleem PDF bestand vanuit sharepoint toevoegen

Beste kenners,

Ik heb een probleem waar ik niet uitkom.
Ik heb twee macro's. In principe werken ze allebei maar in macro A voeg ik een vast bestand toe uit sharepoint aan een mail en dan komt dat bestand ook als PDF in de mail, zodat de lezer van de mail - die geen toegang heeft tot mijn shareponthet bestand toch gewoon kan lezen en opslaan uit de mail.
met macro B voek ik een bestnd toe waarvan de naam door de macro wordt samengesteld. Nu komt de pdf ook in de mail, maar als in-cloud bestand dat de emaillezer - die geen toegang heeft tot sharepoint het bestand niet an lezen en downloaden.

Hoe kan ik macro B zo veranderen dat het pdf-bestand ook door de niet-sharepointgebruiker kan worden gelezen>

Code A:
Code:
Sub Send_Range_Uitnodiging()

Bestand1 = "https://bedrijf.sharepoint.com/sites/TeamZIBPOVASTSTELLINGGESCHIKTHEIDSVERKLARINGEN/Gedeelde%20documenten/GO-Co%C3%B6rdinatie/Koppelbestanden/uitnodigingspakket-GOZIBPO.pdf"
   
   ' Een cellenbereik selecteren in het actieve werkblad.
 With ActiveSheet.Range("A1:F13").Select
   ' De envelop weergeven in de actieve werkmap.
   ActiveWorkbook.EnvelopeVisible = True
End With

   ' Een optionele toelichting toevoegen om
   ' een koptekst op te nemen in het e-mailbericht. Hiermee worden ook de regels
   ' Aan en Onderwerp ingesteld. Tot slot wordt het bericht
   ' verzonden.
   With ActiveSheet.MailEnvelope
      .Item.To = ActiveSheet.Range("L15").Value
     
      .Item.Subject = "Uitnodigingspakket geschiktheidsonderzoek"
      .Item.Attachments.Add Bestand1
End With
  End Sub


Code B:
Code:
Sub Send_Range_CONTRACTviamailV1()
   
bstnm = ActiveSheet.Range("C56").Value & "-V1-" & Range("C62").Value & ".pdf"
Map = "https://bedrijf.sharepoint.com/sites/ZIBPOOpleidingzijinstroominhetberoepleraarPrimairOnderwijs/Gedeelde%20documenten/Scholingscontracten/Te_Archiveren/"
Bestand = Map & bstnm

   
   ' Een cellenbereik selecteren in het actieve werkblad.
 With ActiveSheet.Range("A1:I31").Select
   ' De envelop weergeven in de actieve werkmap.
   ActiveWorkbook.EnvelopeVisible = True
  End With
  
   ' Een optionele toelichting toevoegen om
   ' een koptekst op te nemen in het e-mailbericht. Hiermee worden ook de regels
   ' Aan en Onderwerp ingesteld. Tot slot wordt het bericht
   ' verzonden.
   With ActiveSheet.MailEnvelope
      .Item.To = ActiveSheet.Range("O15").Value
      .Item.Subject = "Tripartiete Contract V1 "
      .Item.Attachments.Add Bestand
     
End With
  
End Sub



Ik hoop dat iemand mij kan helpen, heb de hele dag op het web gezocht naar oplossingen, maar ik kom er met mijn beperkte vba kennis niet uit,

Alvast dank,

Rob
 
Laatst bewerkt door een moderator:
Ik heb de hele dag gezocht naar die aanpak, maar ik kom er niet uit. Vandaar dat ik mijn vraag herformuleerd heb. Hoekan het dat in het ene geval ik een gewoon pdf in de mail krijg en in de ander niet?

Ik heb gezocht naar vba code op bestand van sharepoint op te slaan in c:\temp
maar ik krijg dat niet voor elkaar.


Rob
 
2 vragen samengevoegd. Code dient tussen de codetags (#) geplaatst te worden zodat het duidelijk leesbaar wordt voor de helpers.
 
Als je weet wat de bron is kan dat zo:
Code:
Dim Bron As String
Dim Doel As String
Dim FSO As Object

Set FSO = CreateObject("scripting.filesystemobject")

Bron = "C:\Users\Ed\Desktop\sss.pdf"
Doel = Environ("temp") & "\sss.pdf"
FSO.CopyFile Bron, Doel

De bron mag dan volgens mij geen http adres zijn.
Maar als die sharepoint locatie een map is in het lokale netwerk dan moet het geen probleem zijn.

Waarom ActiveSheet.MailEnvelope zo reageert zou ik niet weten, dat gebruik ik nooit.
 
Laatst bewerkt:
@edmoor

Dank voor je suggestie.
Ik ga het morgen proberen


@moderator dank voor het stroomlijnen en aanwijzingen


groet,

Rob
 
Laatst bewerkt:
Beste Edmoor,

Omdat de bron-locatie hetzelfde is, maar de bestandsnaam verschillend, afhankelijk welk dossier ik heb gekozen, heb ik het volgende nu uitgeprobeerd:

#
Sub Slaoptijdelijk()

Dim Bron As String
Dim Doel As String
Dim FSO As Object

Set FSO = CreateObject("scripting.filesystemobject")

Bron = "https://bedrijf.sharepoint.com/sites/TeamZIBPOVASTSTELLINGGESCHIKTHEIDSVERKLARINGEN/Gedeelde%20documenten/GO-Co%C3%B6rdinatie/Te_Archiveren/" & ActiveSheet.Range("Y9").Value & ".pdf"
Doel = Environ("temp") & "\sss.pdf"
FSO.CopyFile Bron, Doel


End Sub
#

maar als ik de module uitvoer kleurt de laatste regel geel

ik kom dus niet verder

Ik hoop dat je me nog een suggestie wilt geven

Rob
 
Als er een regel geel kleurt heb je daar ook een melding bij gekregen.
 
Dag Edmoor,

ik krijg een box met de mededeling; fout 52 tijdens uitvoering ongeldige bestandsnaam of ongeldig bestandsnummer
 
Zoals ik al zei mag je waarschijnlijk geen http adres gebruiken.
 
Hoi Edmoor,

Fijn dat je me wilt helpen zo vroeg op de zaterdagmorgen.
http of https is dus het probleem


Ik gebruik ActiveSheet.MailEnvelope zodat ik los van mijn outlook in excel de mailoptie krijg.
Als ik een vast bestand dat in de macro zet komt de pdf dus gewoon in de mail
maar bij het flexibel kiezen van een pdf niet.
Is er een andere mailoptie (zonder naar outlook te moeten) dat wellicht wel werkt?

Rob
 
Dag Edmoor,

Dank voor je suggestie. Ga ik bestuderen

een fijn weekeinde

Rob
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan