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

SaveAs Macro

  • Onderwerp starter Onderwerp starter TJ86
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

TJ86

Gebruiker
Lid geworden
28 sep 2014
Berichten
127
Hallo "collega's",

wie kan mij helpen met het volgende:

In Excel wil ik een knop maken met een Macro. Het betreft de functie Opslaan Als.

De gebruiker opent een Excel sjabloon (.xltm) alszijnde een nieuw niet-opgeslagen excel workbook.
Als de gebruiker op de knop klikt, dient de gebruiker het "Opslaan Als" venster te zien te krijgen.
Er dient een wel een pad opgegeven te worden (G:\Projekten\Calculaties) waarin standaard wordt
opgeslagen, dus de gebruiker zou niet eerst de specifieke map moeten opzoeken.


Ik hoop dat ik het een beetje duidelijk omschreven heb.

Alvast bedankt!
Grtz TJ
 
Probeer het eens.
Code:
sub hsv()
with application.FileDialog(msoFileDialogSaveAs)
    .InitialFileName = "[COLOR=#3E3E3E]G:\Projekten\Calculaties\"[/COLOR]
    .FilterIndex = 9
    .Title = "Opslaan onder"
    .Show
    .Execute
  end with
end sub
 
Harry,

allereerst super bedankt! Dit is precies wat ik bedoelde! Echter, nu wordt het nieuwe document ook als "sjabloon" (xltm) opgeslagen. Het is de bedoeling dat het bestand als een gewoon .xlsx bestand wordt opgeslagen.

Heb je hier nog tips voor?

Thanks!
Grtz TJ
 
Maak van de 9 die er staat een 1.
Code iets aangepast om melding te voorkomen.
Code:
Sub hsv()
With Application
.DisplayAlerts = False
With .FileDialog(msoFileDialogSaveAs)
    .InitialFileName = "G:\Projekten\Calculaties\"
    .FilterIndex = 1
    .Title = "Opslaan onder"
    .Show
    .Execute
  End With
.DisplayAlerts = True
End With
End Sub
 
Laatst bewerkt:
Wauw! This is it! Echt ongelofelijk! Ben hier al 2 dagen naar opzoek op Google...

Heb je toevallig ook een oplossing voor het volgende "probleem"?

Voor deze zelfde "calculatie sjabloon" is ook een knop om 2 aparte sheets te printen ipv de actieve. Sheet. Dus ik heb de sheet "samenvatting" waar een knop staat
"print calculatie" en een knop "print specificatie".

Nu is het me zover gelukt dat per knop inderdaad de juiste sheet wordt geprint. Echter, ik heb als default printer een fysieke printer in Windows. Hoe stel ik het voor
beide knoppen in, dat ipv de default printer te allen tijden de CutePDF Writer wordt gebruikt met CPW2: als poort.

Mijn macro voor de print opdracht is als volgt:


Sub Print_Calculatie()

Sheets("Calculatie").PrintOut Copies:=1

End Sub
 
1: Ik heb de code in mijn vorig schrijven aangepast.

2: Dat kan je het beste doen door even een macro op te nemen.
Zo krijg je namelijk precies de juiste naam van de printer.
Schrijf dat hier even neer zodat ik er een code van kan maken dat de default printer na de prints weer de default printer wordt.

Trouwens; print zo'n printer gewoon prints, of is dit bedoelt om pfd's te maken.
 
Dit is echt bedoeld op een PDF te maken van het tabblad Calculatie en een aparte PDF van het tabblad Specificatie.
Ik wil dat hier 2 knoppen voor zijn om 2x die opdracht te moeten uitvoeren. Anders snappen ze het niet 8-)

Als ik een Macro opneem krijg ik het volgende:

Sub Print_Calculatie_PDF2()
'
' Print_Calculatie_PDF2 Macro
'

'
Sheets("Calculatie").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub
 
Jij bezit een Excelversie van 2007 of nieuwer.
Dan heb je die printer niet nodig en kan het zo.
Het bestand wordt in dezelfde map opgeslagen als je Excelbestand.
Code:
Sub Print_Calculatie()
 Sheets("Calculatie").ExportAsFixedFormat 0, ThisWorkbook.Path & "\calculatesheet.pdf"
End Sub
 
Laatst bewerkt:
Dit is 'm! Alleen nu zie ik dat sommige lijnen in een "tabel" dikker zijn dan de andere... terwijl overal dezelfde lijndikte wordt gehanteerd. Als hier niets aan te doen is dan moet ik het maar voor lief nemen.

2016_04_03_19_47_55_calculatesheet.pdf_Adobe_Reader.jpg

Is het ook mogelijk om bij het opslaan van het PDF bestand een "Opslaan als" scherm te laten zien zodat de gebruiker
kan kiezen waar het bestand moet worden opgeslagen?
 
Aan de lijnen kan ik niets doen.

Zet alle codes bij elkaar in dezelfde module.
De Print_Specificatie() moet misschien iets aanpassen (bladnaam).
Code:
Sub Print_Calculatie()
Dim Mapnaam As String
  Mapnaam = KiesMapnaam("testje")
  Sheets("Calculatie").ExportAsFixedFormat 0, Mapnaam
End Sub

Sub Print_Specificatie()
Dim Mapnaam As String
  Mapnaam = KiesMapnaam("testje")
  Sheets("Specificatie").ExportAsFixedFormat 0, Mapnaam
End Sub


Private Function KiesMapnaam(IniFilename As String) As String
With Application.FileDialog(msoFileDialogSaveAs)
        .AllowMultiSelect = False
        .InitialFileName = IniFilename
        .FilterIndex = 25
        .Show
    On Error Resume Next
        KiesMapnaam = .SelectedItems(1)
        Err.Clear
        On Error GoTo 0
    End With
End Function
 
Harry,

ik ben je eeuwig dankbaar! Het werkt! Allemaal!

Super bedankt!!!
 
Graag gedaan TJ.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan