• 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 opslaan als VBA excl. value specifieke cell

Status
Niet open voor verdere reacties.

RichieL

Gebruiker
Lid geworden
29 nov 2018
Berichten
74
Hallo,

Ik heb een macro waarbij ik een Excel sheet wil opslaan als PDF, maar ik wil de pdf graag opslaan zonder de value die in een bepaalde cel staan:

Dus als voorbeeld: in de excel en CEL "A1" staat €9,00 dan moet hij wanneer de sheet wordt opgeslagen als PDF de gegevens van CEL "A1" leeglaten / weglaten

Code:
Sub CHCopySpecToNewPDF()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim EAN As String
Dim SAP As String
Dim ArticleName As String
Dim PERIOD As String
On Error GoTo errHandler

Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), "yyyymmdd\_hhmm")
EAN = Range("B10")
SAP = Range("B9")
NAME = Range("B5")
PERIOD = Range("B7")

'get active workbook folder, if saved
strPath = "S:\"
If strPath = "" Then
  strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"

'replace spaces and periods in sheet name
strName = Replace(wsA.NAME, " ", "")
strName = Replace(strName, ".", "_")

'create default name for savng file
strFile = EAN & "_" & SAP & "_" & NAME & "_" & PERIOD & ".pdf"
strPathFile = strPath & strFile

'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
    (initialFilename:=strPathFile, _
        FileFilter:="PDF Files (*.pdf), *.pdf", _
        Title:="Select Folder and FileName to save")

'export to PDF if a folder was selected
If myFile <> "False" Then
    wsA.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    'confirmation message with file info
    MsgBox "PDF file has been created: " _
      & vbCrLf _
      & myFile
End If

exitHandler:
    Exit Sub
errHandler:
    MsgBox "Could not create PDF file"
    Resume exitHandler
End Sub

Is dat mogelijk?
 
Kopieer dat werkblad naar een nieuw werkblad.
Maak daar de cellen leeg die je leeg wilt hebben.
Sla dat werkblad op als PDF.
Verwijder dat werkblad.
 
of maak de achtergrond van de desbetreffende cel zwart of identiek aan die van het lettertype of nog maak de kleur van het lettertype gelijk aan de achtergrond en sla op als pdf.
Verander de kleur daarna terug naar origineel.
 
Laatst bewerkt:
Als er op rij 1 verder niets staat kun je de range opgeven vanaf A2.
 
De tip van edmoor werkt goed voor me, het enige wat me niet lukt is dat hij na het opslaan van de pdf het document sluit (zonder op te slaan als xlsx)

Code:
Sub CHCopySpecToNewPDFProd()

ActiveSheet.Select
ActiveSheet.Copy

Range("B16").Select
Selection.ClearContents
    
Dim wsA As Worksheet
Dim wbA As Workbook
'Dim strTime As String
'Dim strName As String
'Dim strPath As String
'Dim strFile As String
'Dim strPathFile As String
'Dim myFile As Variant
Dim EAN As String
Dim SAP As String
Dim ArticleName As String
Dim PERIOD As String
On Error GoTo errHandler

Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), "yyyymmdd\_hhmm")
EAN = Range("B10")
SAP = Range("B9")
NAME = Range("B5")
PERIOD = Range("B7")

'get active workbook folder, if saved
strPath = "S:\"
If strPath = "" Then
  strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"

'replace spaces and periods in sheet name
strName = Replace(wsA.NAME, " ", "")
strName = Replace(strName, ".", "_")

'create default name for savng file
strFile = EAN & "_" & SAP & "_" & NAME & "_" & PERIOD & ".pdf"
strPathFile = strPath & strFile

'use can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
    (initialFilename:=strPathFile, _
        FileFilter:="PDF Files (*.pdf), *.pdf", _
        Title:="Select Folder and FileName to save")

'export to PDF if a folder was selected
If myFile <> "False" Then
    wsA.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        filename:=myFile, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    'confirmation message with file info
    MsgBox "PDF file has been created: " _
      & vbCrLf _
      & myFile
      

End If

exitHandler:
    Exit Sub

errHandler:
    MsgBox "Could not create PDF file"
    Resume exitHandler
    
    ActiveWorkbook.Close True
    
    End Sub
 
Dat kan met:
ThisWorkbook.Close
 
Heb ik ook geprobeerd, maar nadat hij hem opslaat als PDF, doet hij niets meer. Het document blijft open.
 
Zo:
Code:
exitHandler:
    ThisWorkbook.Close True
 
Sorry, maar zal wel iets verkeerd doen, maar hij sluit niet af :(

Code:
    MsgBox "PDF file has been created: " _
      & vbCrLf _
      & myFile

End If

exitHandler:
    ThisWorkbook.Close True
    Exit Sub

errHandler:
    MsgBox "Could not create PDF file"
    Resume exitHandler

    End Sub
 
Laatst bewerkt:
Loop er dan in debug mode doorheen om te zien wat er precies op welk moment gebeurt.
 
Heb de debug er doorheen gehaald, maar het lijst wel of hij hem overslaat, wanneer ik de "ThisWorkbook.Close True" op andere plekken neerzet dan krijg ik sowieso alleen maar foutmeldigen dat hij de PDF niet kan aanmaken.
 
Dat heeft niks met het maken van de PDF te maken en moet niet op een andere plek staan.
Plaats dan je document, of een relevant voorbeeld er van, hier.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan