• 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.

VBA: Bestandsnaam .PDF wijzigen

Status
Niet open voor verdere reacties.

Hawkie003

Gebruiker
Lid geworden
11 aug 2015
Berichten
24
Goedenavond,

Ik hoop dat één van jullie mij kan helpen. Deze code werkt volledig naar wens, op één enkel iets. Ik krijg het niet voor elkaar om de .PDF dezelfde celwaarde te geven als de "Title", dus
Code:
Range("H1")
. Heeft er hier iemand een oplossing hiervoor. Alvast bedankt.

Met vriendelijke groet.

Code:
Dim IsCreated As Boolean
  Dim i As Long
  Dim PdfFile As String, Title As String
  Dim OutlApp As Object
 
  ' Not sure for what the Title is
  Title = Range("H1")
 
  ' Define PDF filename
  PdfFile = ActiveWorkbook.FullName
  i = InStrRev(PdfFile, ".")
  If i > 1 Then PdfFile = Left(PdfFile, i - 1)
  PdfFile = PdfFile & "_" & ActiveSheet.Name & ".pdf"
 
  ' Export activesheet as PDF
  With ActiveSheet
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  End With
 
  ' Use already open Outlook if possible
  On Error Resume Next
  Set OutlApp = GetObject(, "Outlook.Application")
  If Err Then
    Set OutlApp = CreateObject("Outlook.Application")
    IsCreated = True
  End If
  OutlApp.Visible = True
  On Error GoTo 0
 
  ' Prepare e-mail with PDF attachment
  With OutlApp.CreateItem(0)
   
    ' Prepare e-mail
    .Subject = Title
    .To = Sheets("Vue_Input").Range("F13") ' <-- Put email of the recipient here
    .CC = "mail-sales@vuecinemas.nl" ' <-- Put email of 'copy to' recipient here
    .Body = "Hi," & vbLf & vbLf _
          & "The report is attached in PDF format." & vbLf & vbLf _
          & "Regards," & vbLf _
          & Application.UserName & vbLf & vbLf
    .Attachments.Add PdfFile
   
    ' Try to send
    On Error Resume Next
    .Send
    Application.Visible = True
    If Err Then
      MsgBox "E-mail was not sent", vbExclamation
    Else
      MsgBox "E-mail successfully sent", vbInformation
    End If
    On Error GoTo 0
   
  End With
 
  ' Delete PDF file
  Kill PdfFile
 
  ' Quit Outlook if it was created by this code
  If IsCreated Then OutlApp.Quit
 
  ' Release the memory of object variable
  Set OutlApp = Nothing
  End Sub
 
Dan moet je onderstaand stukje veranderen...
Code:
Filename:=PdfFile
....in:
Code:
[COLOR=#ff0000]Filename:=Title[/COLOR]
Als ik het goed heb begrepen tenminste.
 
Helaas, ik krijg dan een foutmelding, waarin Excel aangeeft het juiste bestand niet te kunnen vinden.
 
Alleen jij weet wat er in cel H8 staat.
Maak dit er eens van:
Code:
Filename:=Thisworkbook.path & "\" & Title
 
Ik wil deze even volgen dus maar een reactie. Geef in ieder geval precies aan wat er in H8 staat, dit is belangrijk om te weten zoals HSV al opmerkte.
 
Altijd goed Ed. :thumb:

Maar.........,daar is ook een knopje voor; genaamd "Onderwerpopties".
 
Nooit geweten, maar zo kan het ook :)
 
In H1 staat een tekst samenvoegen formule van een aantal cellen, bestaande uit tekst en een datum...

Ik zal morgen de optie van HSV eens proberen.
 
Met "precies" bedoel ik dat we graag de letterlijke inhoud willen weten. Het resultaat van die formule dus.
 
Moet ik helaas ook morgen op terug komen. De waarde van de betreffende cel is afhankelijk van de waarde van een drietal cellen, twee bestaande uit tekst en één bestaande uit een datum.

Vreemd genoeg neemt de VBA code de cel H1 wel over in de titel van de e-mail.

Zoals gezegd laat ik morgen weten of de oplossing van HSV werkt.
 
Helaas krijg ik met de aanpassing van HSV nog altijd de foutmelding:
Fout -2147024894 (80070002) tijdens uitvoering

Kan het bestand niet vinden. Controleer het pad of de bestandsnaam juist zijn.

De formule die in H1 staat is de volgende:
Code:
=TEKST.SAMENVOEGEN(B5;" - "&TEKST(C16;"mm-dd-jjjj");" - ";C19)
Hierbij verwijst B5 naar tekst, C16 is een datum en C19 is wederom tekst.
 
Hawkie..

Lees eens wat andere draden door en leer daarvan welke concrete informatie je als vraagsteller moet verschaffen om langdradige draden te voorkomen.
Als je in je eerste bericht voldoende infomatie had gegeven, was de eerste reaktie al meteen je oplossing geweest.
Na 11 posts is jouw informatie nog steeds niet adekwaat.
 
Maar je laat nog steeds geen voorbeeld zien van het resultaat van de formule.

Edit:
@snb: Dat bedoel ik.
 
Hier werkt je code uit #1 prima.

Verander dit:
PdfFile = PdfFile & "_" & ActiveSheet.Name & ".pdf"

Eens in dit:
PdfFile = Title & "_" & ActiveSheet.Name & ".pdf"

Tip:
Wijzig voor de test .Send in .Display
Dan wordt de mail niet verstuurd, alleen in beeld gebracht.
 
Laatst bewerkt:
Hallo Edmoor,

Deze oplossing heb ik reeds geprobeerd. Ook nu krijg ik weder om dezelfde foutmelding waarbij de nadruk ligt, op wat ik hieronder blauw gearceerd heb.
Code:
    ' Prepare e-mail
    .Subject = Title
    .To = Sheets("Vue_Input").Range("F13") ' <-- Put email of the recipient here
    .CC = "mail-sales@vuecinemas.nl" ' <-- Put email of 'copy to' recipient here
    .Body = "Hi," & vbLf & vbLf _
          & "The report is attached in PDF format." & vbLf & vbLf _
          & "Regards," & vbLf _
          & Application.UserName & vbLf & vbLf
[COLOR="#0000FF"]    .Attachments.Add PdfFile[/COLOR]
 
Laat dan eens zien wat op dat moment de waarde van de variabele PdfFile is.
 
Je moet je Pdf natuurlijk wel ergens opslaan.
Vandaar dat ik schreef "Thisworkbook.path".

Maak een testje met:
Code:
activesheet.exportasfixedformat "c:\map1\title.pdf"
En verander de mappenstructuur waar nodig.
 
@Edmoor, de waarde van cel H1 (er van uit gaande dat je dat bedoeld) is nog steeds:
Test - 03-03-2016 - Test
Of bedoel je met veriabele PDF file iets anders?

@HSV, de code zoals die in mijn oorspronkelijke bericht staat werkt. Zonder dat ik het bericht dus ergens opsla. Ook met de oplossing die je aanbied, werkt het veranderen van de PDF nog altijd niet.
 
Nee, ik vroeg de waarde van de variabele PdfFile op het moment van je blauw gearceerde regel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan