• 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 tabblad opslaan als pdf, Afhankelijk van cel waarde.

Status
Niet open voor verdere reacties.

YannickVM

Gebruiker
Lid geworden
23 apr 2023
Berichten
7
ik ben een Excel met meerdere tabbladen aan het maken, afhankelijk van de waarde in cel I4 zou er het juiste tabblad moeten gekozen worden. Cel I4 genereerd de naam van het tabblad op basis van ingegeven waarden in andere cellen die vergeleken worden met een tabel.

Momenteel ben ik al zover geraakt dat het op te slaan pad wordt bepaald door een cel (k1) en de naam van het bestand ook (I6). Alles loopt goed zolang ik naar 1 bepaald tabblad verwijs ik krijg het echter niet klaar op dit via een cel variabel te maken. Kan iemand mij helpen? dit is wat ik tot nu toe heb (zonder poging het tabblad variabel te maken, die zijn mislukt tot nu toe.)

Sub OpslaanPDF()
Dim StrFilePathAndName As String
With Sheets("Ingave")
StrFilePathAndName = .Range("K1") & "" & .Range("I6") & ".pdf"
End With
MsgBox StrFilePathAndName
With Sheets("InterBer-2023-01")
.Range("Print_Area").ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=StrFilePathAndName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End With
End Sub
 
Als de bladnaam in sheets("ingave") cel A1 staat.

Code:
[COLOR=#333333]Sub OpslaanPDF()[/COLOR]
[COLOR=#333333]Dim StrFilePathAndName As String[/COLOR]
[COLOR=#333333]With Sheets("Ingave")[/COLOR]
[COLOR=#333333]    StrFilePathAndName = .Range("K1") & "" & .Range("I6") & ".pdf"[/COLOR]
[COLOR=#333333]MsgBox StrFilePathAndName[/COLOR]
[COLOR=#ff0000][COLOR=#333333] [/COLOR][/COLOR][COLOR=#333333][COLOR=#ff0000]Sheets(.range("A1").value)[/COLOR][COLOR=#ff0000][COLOR=#333333][/COLOR][/COLOR].Range("Print_Area").ExportAsFixedFormat _[/COLOR]
[COLOR=#333333]Type:=xlTypePDF, Filename:=StrFilePathAndName, _[/COLOR]
[COLOR=#333333]Quality:=xlQualityStandard, IncludeDocProperties:=True, _[/COLOR]
[COLOR=#333333]IgnorePrintAreas:=False, OpenAfterPublish:=True[/COLOR]
[COLOR=#333333]End With[/COLOR]
[COLOR=#333333]End Sub[/COLOR]
 
Alvast bedankt voor u antwoord, ik snap de redenering maar nu genereert de button een melding. Fout 5 tijdens uitvoering: Ongeldige procedure-aanroep of ongeldig argument.

Enig idee wat dit zou kunnen zijn? in vak I4 staat de naam van het tabblad, I6 is de naam van de PDF die aangemaakt moet worden. Misschien iets duidelijker met de foto erbij.

72N70FAAAAAAAAAHcB0f8HAtPunD Gg0IAAAAASUVORK5CYII=
 
Plaats het bestand eens.
Nieuwsgierig waar je "Print_Area" zich bevindt.
 
Je blad even zichtbaar maken en weer verbergen.
Code:
Sub OpslaanPDF()
Dim StrFilePathAndName As String, sh As Worksheet
With Sheets("Ingave")
 Set sh = Sheets(.Range("I4").Value)
    StrFilePathAndName = .Range("K1") & "" & .Range("I6") & ".pdf"
MsgBox StrFilePathAndName
    sh.Visible = True
    sh.Range("Print_Area").ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=StrFilePathAndName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
  sh.Visible = False
 End With
End Sub
 
Het zal wel iets zijn wat ik fout doe maar nu lukt het voor de eerste 2 tabbladen maar het derde blijft fout 400 geven. Ik heb reeds tevergeefs zichtbaar gemaakt en verborgen.

de eerste 2 pagina's werken echter perfect.
 

Bijlagen

Mijn printbereik was nog niet bepaald op de andere pagina's, de code werkt perfect. Alvast bedankt geef jij geen opleidingen? ik wil hier echt meer over leren.
 
Hier is het gratis. ;)

Graag gedaan en succes ermee.
 
nog een extra vraagje, als niet alle velden ingevuld zijn zou ik graag een melding creëren die zegt dat alle velden dienen ingevuld te worden en de knop stoppen zodat deze geen PDF aanmaakt.
 
Test het maar eens.
Misschien is het teveel van het goede.
Code:
Sub OpslaanPDF()Dim StrFilePathAndName As String, sh As Worksheet
With Sheets("Ingave")
If Application.CountA(.Range("e4, e6:e7,e9, e11, e13")) < 6 Then
 For Each cl In .Range("e4, e6:e7,e9, e11, e13")
   If cl = "" Then MsgBox "Vul cel " & cl.Address(0, 0) & " in"
 Next cl
Else
 Set sh = Sheets(.Range("I4").Value)
    StrFilePathAndName = .Range("K1") & "" & .Range("I6") & ".pdf"
MsgBox StrFilePathAndName
    sh.Visible = True
    sh.Range("Print_Area").ExportAsFixedFormat 0, StrFilePathAndName, , -1, , , , -1
  sh.Visible = False
End If
 End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan