Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Verzending excel in pdf + EXTRA PDF-BIJLAGE  (gelezen 7403 keer)

0 leden en 1 gast bekijken dit topic.

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Gepost op: 25 oktober 2020, 15:56:17 »
Hallo allemaal  _/-\o_

Ik wil een knop in excel 2016 koppelen aan een macro die volgende zaken doet:
1. Excel-bestand opslaan in een map * als pdf met de naam vermeld in cel Q1 van het excel-bestand
2. * Checken of deze map al bestaat en anders aanmaken C:\JVC\Contracten\
3. Checken of de bestandnaam "O1" al bestaat en anders foutmelding geven "Dit bestand bestaat al, gelieve het refertenummer aan te passen"
4. Mailprogramma openen met als bijlage de PDF met naam [Contract "O1"].  Het e-mailadres staat in cel "O10" in het excel-bestand, mogelijk kan dit mee overgenomen worden?

Ik heb zelf al vanalles gevonden maar nooit het geheel en ik zelf ken er te weinig van om deze als een geheel in mekaar te verwerken.

Alvast bedankt voor de hulp
« Laatst bewerkt op: 16 november 2020, 12:53:56 door jannacy »

Offline Montagnard

  • Oplosser
  • ****
  • Berichten: 601
  • Geslacht: Man
  • To Windows or not to Windows , that's the question
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #1 Gepost op: 25 oktober 2020, 17:52:22 »
dag,
welkom hier op het forum !
het beste is om een voorbeeld bestandje als bijlage te plaatsen , zijn het "gevoelige" gegevens verander deze dan in "dummy" gegevens.
Mvg.

Offline emields

  • Ervaren lid
  • ***
  • Berichten: 256
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #2 Gepost op: 25 oktober 2020, 18:34:18 »
 plaats een voorbeeld bestand met hetgeen je al gevonden hebt maar lees eerst nog eens uw vraag.
u wilt elke keer een volledig bestand opslaan als pdf?
u wilt iedere keer een volledig bestand versturen per mail?
als bijlage zonder een ander woordje uitleg in uw mail?

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #3 Gepost op: 27 oktober 2020, 19:17:22 »
Ik ga hier in de komende dagen eens werk van maken
Bedankt

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #4 Gepost op: 16 november 2020, 12:52:08 »
Ok, ik heb er tijd voor gemaakt om er nog eens in te vliegen.  Alvast bedankt om me te willen helpen.

Dit vond ik om het document op te slaan als pdf op een reeds bestaande map.
Dit werkt als de map reeds bestaat  :thumbsup: 
In principe kan ik deze wel blijven gebruiken want 1 keer aangemaakt is er ook geen probleem meer maar ja, je weet nooit.   Misschien is het maar een kleine handeling.

Sub PDF()
Dim FacName As String
FacName = ActiveSheet.Range("O1").Value
If Dir("C:\JVC\Contracten\" & FacName & ".pdf") <> "" Then
MsgBox "Het bestand: " & FacName & ".pdf bestaat reeds"
Exit Sub
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\JVC\Contracten\" & FacName & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=2, OpenAfterPublish:=True
End If
End Sub

Dit vond ik om op te slaan en de map aan te maken als deze er nog niet zou zijn.  Dit werkt als je een excel wil opslaan :thumbsup:
Ik zou het document liever als pdf opslaan zoals hierboven.  Code bovenaan en deze code wil ik dus combineren waarbij ook gekeken wordt of het contractnummer, vermeld in O1 als bestaat.

Sub OpslaanAls()
    Dim sPad As String
    sPad = Environ("Userprofile") & "\JVC\Contracten"
    If Len(Dir(sPad, vbDirectory)) = 0 Then
        MkDir sPad
    End If
    sPad = sPad & "\" & Sheets("Contract").Range("O1").Value
    If Len(Dir(sPad, vbDirectory)) = 0 Then
        MkDir sPad
    End If
   
    ActiveWorkbook.SaveAs Filename:=sPad & "\" & Sheets("Contract").Range("O1").Value & ".xlsm"
    MsgBox "Contract succesvol opgeslagen."
End Sub

Dit vond ik om het als pdf in een bijlage aan de mail toe te voegen.
Dit werkt als je de naam van het tabblad wil gebruiken voor het pdf-bestand :thumbsup:
Ik zou liefst het contractnummer (vermeld in O1) als naam willen van de bijlage.  Het e-mailadres waarnaa ik het wil verzenden staat in cel O10.  Misschien kan dit ook al standaard ingevuld worden?

Sub VerstuurPerMail()

  '' default signature
  textSignature = vbLf _
            & vbLf _
            & "Met vriendelijke groet," & vbLf _
            & "Ann"
 
  Set fso = CreateObject("Scripting.FileSystemObject")
 
  '' signature file? => fetch data
  Set objShell = CreateObject("WScript.Shell")
  txtFileSignature = objShell.SpecialFolders("MyDocuments") & "\\handtekening-excel-pdf.txt"
 
  If fso.FileExists(txtFileSignature) Then
    Set file = fso.OpenTextFile(txtFileSignature, 1)
    textSignature = file.ReadAll
    file.Close
  End If
 
 
  ' set pdf filename
  tmpFolder = fso.GetSpecialFolder(2)
  PdfFile = tmpFolder & "\" & LCase(ActiveSheet.Name) & ".pdf"
 
  ' export sheet as pdf
  With ActiveSheet
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  End With
 
  ' open outlook
  On Error Resume Next
  Set OutlApp = GetObject(, "Outlook.Application")
  If Err Then
    Set OutlApp = CreateObject("Outlook.Application")
  End If
  OutlApp.Visible = True
  On Error GoTo 0
 
  ' set signature & attachment
  With OutlApp.CreateItem(0)
    ' Prepare e-mail
    .Body = textSignature
   
    .Attachments.Add PdfFile
   
    ' display mail window
    .Display
  End With
 
  ' delete pdf
  Kill PdfFile
 
  Set OutlApp = Nothing

End Sub

Dus ik wil als pdf opslaan in een specifieke map die mogelijks nog niet bestaat en aangemaakt moet worden onder een specifieke naam vermeld in cel O1.
Daarnaast wil ik de pdf ook verzenden met dezelfde specifieke naam.  Ik heb geen idee of dit kan.

Als dit niet kan in 1 handeling wil ik aan mijn excel wel 2 knoppen toevoegen.  De ene waarbij ik het opsla op de juiste plek met de juiste naam.
En de andere waarmee ik het verzend.

Offline emields

  • Ervaren lid
  • ***
  • Berichten: 256
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #5 Gepost op: 16 november 2020, 15:33:46 »
Een voorbeeldbestand zullen we zelf moeten maken?

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #6 Gepost op: 16 november 2020, 19:21:58 »
Een voorbeeldbestand zullen we zelf moeten maken?

Oei ja, dat ook nog.  Ik voeg het toe
Met toevoeging van de eerste macro.

Offline Dotchiejack

  • Oplosser
  • ****
  • Berichten: 691
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #7 Gepost op: 17 november 2020, 09:01:27 »
Sub Dotch()
Plaats = "C:\JVC\Contracten\"
Naam = Range("O1").Value
adres = Range("O10").Value
handtekening = vbLf _
            & vbLf _
            & "Met vriendelijke groet," & vbLf _
            & "Ann"
If Dir(Plaats & Naam & ".pdf") <> "" Then
     antwoord = MsgBox("Het bestand: " & Naam & ".pdf bestaat reeds  Vervangen?", vbYesNo)
        If antwoord = vbYes Then
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Plaats & Naam & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, to:=1, OpenAfterPublish:=False
        Else
           GoTo verder
        End If
    Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Plaats & Naam & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, to:=1, OpenAfterPublish:=False
End If
verder:
Bestand = ThisWorkbook.Path & "\" & Range("O1").Value & ".pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Bestand
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .to = adres
        .Body = handtekening
        .Attachments.Add Bestand
        .Display
    End With
 Kill (Bestand)
End Sub
Checken als de folder bestaat vind ik persoonlijk wat overkill.
Groet, Philiep

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #8 Gepost op: 21 november 2020, 10:30:11 »
Dotchiejack, heel erg bedankt  _/-\o_

Het werkt en inderdaad, nagaan of de map al bestaat hoeft niet perse.

Ik wilde wel nog een button toevoegen om, wanneer dit bestand in een mail doorgestuurd wordt naar een gebruiker, dat deze een map aanmaakt en het bestand hier rechtstreeks in opslaat.
Zou dit ook lukken?  Het moet dan wel een excel-bestand zijn met meerdere tabbladen en met macro's.

Ik had al iets gevonden maar daarin plaatst hij het bestand in een hoger gelegen map m.n. C:\JVC
Er zit dus nog een fout in maar ik vind niet wat.

Sub BasismapMaken_Klikken()

''Variabelen

Opslagplaats = "C:\JVC\Basis"
Filename = "Contract"
 
Dim fs As Object

'Eerst kijken of de schijf en map bestaat

Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.folderexists(Opslagplaats) Then

'Maak een map
MkDir Opslagplaats

''Sla bestand op in deze map

ActiveWorkbook.SaveAs Filename:=Opslagplaats & Filename & ".xlsm", FileFormat:=52
MsgBox "Basiscontract succesvol opgeslagen."
   
End If

End Sub
« Laatst bewerkt op: 21 november 2020, 22:57:51 door jannacy »

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #9 Gepost op: 22 november 2020, 10:20:09 »
Vanochtend heb ik mijn vraag met een fris hoofd zelf opgelost.  Simpel eigenlijk.

ActiveWorkbook.SaveAs Filename:=Opslagplaats & "\" & Filename & ".xlsm", FileFormat:=52

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #10 Gepost op: 22 november 2020, 16:52:00 »
Nog een aanvullende vraag bij mijn vorige vraag:

ik wil bij het bestand wat ik doorstuurde nog een extra pfd-bestand als bijlage toevoegen.
Dit bestand staat in de map: C:\JVC\HHR.pdf

''Variabelen - de anderen staan hogerop in de formule (zie vorige vraag)

Bestand = ThisWorkbook.Path & "\" & Range("Q1").Value & ".pdf"
HHR = "C:\JVC\HHR.pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Bestand
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = adres
        .CC = CC
        .BCC = BCC
        .Subject = onderwerp
        .Body = handtekening & vbNewLine & ondergetekende
        .Attachments.Add [b]Bestand & HHR[/b]
        .Display
    End With
 Kill (Bestand)

Dit werkt niet.  Iemand een oplossing?
« Laatst bewerkt op: 22 november 2020, 17:14:13 door SoftAid »

Offline jannacy

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #11 Gepost op: 22 november 2020, 21:15:40 »
Ik heb wederom zelf een oplossing gevonden.
Heel simpel eigenlijk  ;) 
Gewoon 2 x Attachments.Add

''Variabelen - de anderen staan hogerop in de formule (zie vorige vraag)

Bestand = ThisWorkbook.Path & "\" & Range("Q1").Value & ".pdf"
HHR = "C:\JVC\HHR.pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Bestand
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = adres
        .CC = CC
        .BCC = BCC
        .Subject = onderwerp
        .Body = handtekening & vbNewLine & ondergetekende
        .Attachments.Add Bestand
        .Attachments.Add HHR
        .Display
    End With
 Kill (Bestand)

Offline Haije

  • Excel-Expert
  • Volledig lid
  • *****
  • Berichten: 114
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #12 Gepost op: Gisteren om 14:48:02 »
Ik heb wederom zelf een oplossing gevonden.

Goed bezig!  \o/
|-|aije

 


www.combell.com