• 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 knop opslaan met meerdere cel waardes als bestandsnaam

Status
Niet open voor verdere reacties.

Soppuh

Gebruiker
Lid geworden
11 mei 2015
Berichten
61
Goedemorgen,

Ik heb een vraagje. Ik heb in een excel document een knop gemaakt om het actieve tabblad op te slaan als .pdf bestand. Dat werkt allemaal heel erg mooi. Het bestand wordt nu opgeslagen met als bestandsnaam de celinhoud van cel D2. Echter zou ik graag een andere bestandsnaam willen hebben die standaard tekst bevat en meerdere waardes uit verschillende cellen.

Voorbeeld: Ik voer de volgende waardes in mijn excel sheet in.
Cel D2: Drukveer
Cel D3: Verenstaal Klasse C SH
Cel D8: 14,5
Cel D16: 5
Cel D25: 22,5
Cel D14: Geen ogen

Dan moet de bestandsnaam worden: "Cel D2. Cel D3. d; ((CelD8-CelD10)/2) Du; Cel D8. Nt; Cel D16. Lo; Cel D25. Cel D14."

De afkortingen d, Du, Nt en Lo moeten standaard in de bestandsnaam komen.

Is iemand van jullie handig die dit of een klein deel er van kan realiseren? als ik weet hoe ik de waarde van Cel D2 Cel D3 en Cel D8 in de bestandsnaam moet verwerken, kom ik er verder zelf wel uit.

Onderstaande VBA code zit nu achter mijn knop.

Alvast bedankt!

Frank

Code:
Sub Opslaan()
Dim FacName As String

FacName = ActiveSheet.Range("D2").Value ' De macro haalt met dit command gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
      
If Dir("L:\Calculatie\1. Drukveren\" & FacName & ".pdf") <> "" Then
   MsgBox "Het bestand: " & FacName & ".pdf bestaat reeds" ' Een controle om geen dubbel PDF-bestand te maken.
        ' De map waarin je de PDF-bestanden in wilt creëeren moet op voorhand aangemaakt zijn!!
       Exit Sub  'Verlaat de routine als het PDF-bestand reeds bestaat.
     Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="L:\Calculatie\1. Drukveren\" & FacName & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=True

End If
End Sub
 
Waarom zo moeilijk doen? Zet die combinatie in een hulpcel met behulp van:
Code:
=D2 & D3 & ". d" & ((CelD8-CelD10)/2) & "Du" & D8 & ". Nt" & D16 & ". Lo" & D25 & ". D14."
zo zie je tenminste wat het resultaat van je constructie oplevert
en gebruik dan deze cel om je code werkend te krijgen.
 
Wat bedoel je met hulpcel? Gewoon die formule van jou in een andere cel plaatsen (Bijvoorbeeld F1), vervolgens het bestand laten opslaan met de celinhoud van cel F1?
 
Soppuh, volgens mij sla je hier de spijker op z'n kop!
 
Opgelost

Dank voor jullie reacties. Ik heb het inmiddels zelf voor elkaar gekregen met onderstaande code! :) :thumb:

Code:
Sub Opslaan()
Dim FacName As String

FacName = ActiveSheet.Range("D2").Value & " - " & Range("D4").Value & " - Du " & Range("D8").Value & " - Nt " & Range("D16").Value & " - Lo " & Range("D25").Value & " (" & Range("D14").Value & ")" ' De macro haalt met dit command gegevens op in het document, om deze later als naam voor het PDF-bestand te gebruiken.
      
If Dir("L:\Calculatie\1. Drukveren\" & FacName & ".pdf") <> "" Then
   MsgBox "Het bestand: " & FacName & ".pdf bestaat reeds" ' Een controle om geen dubbel PDF-bestand te maken.
        ' De map waarin je de PDF-bestanden in wilt creëeren moet op voorhand aangemaakt zijn!!
       Exit Sub  'Verlaat de routine als het PDF-bestand reeds bestaat.
     Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="L:\Calculatie\1. Drukveren\" & FacName & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=True

End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan