save copy as van 1 werkblad

Status
Niet open voor verdere reacties.

Doohan

Gebruiker
Lid geworden
20 mrt 2012
Berichten
374
Geachte heer,

Ik heb een werkbook (werkbook.xlsm) met meerdere sheets. Wat ik graag zou willen is met een button een save copy as maken zodat het formaat wijzigt naar (xls of xlsx) na de save copy as mag deze xlsx maar 1 sheet bevatten. De button staat op een formulier.
Ik heb het geprobeert met het opnemen van een macro maar dan bevat de SaveCopyAs alle sheets helaas.
De specifieke sheet heet ventilatielucht. De bestandsnaam en pad moet niet van tevoren bepaald worden.
Wie kan me helpen.

Groet Martin
 
Hallo Martin,

Jij weer :p

Maar je stelt dus verschillende vragen. Opslaan & veranderen

Opslaan in VBA kan met:
ActiveWorkbook.SaveAs "C:\martin.xlsm"

Als je de gebruiker wilt laten kiezen dan kun je ofwel vragen om een pad met InputBox() ofwel een cel aanwijzen waar het pad in moet komen. Een mooi dialoogje krijg je alleen met echte programmeertalen ofwel door het gebruik van het menu van Excel.

Wat betreft het veranderen. Je wilt dus bijvoorbeeld een bestand met 3 sheets openen, en dan opslaan met slechts 1 sheet van die 3?
Dan kun je ofwel vóór het opslaan de sheets verbergen ofwel verwijderen. Bij dat laatste moet je het originele bestand niet opslaan, want dan ben je die sheet permanent kwijt.

Wat ook een idee is, en wat mij beter lijkt aan te sluiten op je vraag, is om een tweede excel met VBA te openen, daar de sheet in te pompen die je wilt houden, en dan de boel op te slaan.
Dan blijft je originele bestand gewoon intact.
 
Hoi excit,

Ik had eigenlijk gehoopt dat het in deze vorm
Sub Opslaan_als_PDF()

'Exporteert werkboek naar pdf waarbij zelf de naam getikt moet worden

Dim PDFnaam As Variant

PDFnaam = Application.GetSaveAsFilename(, "PDF Files (*.pdf), *.pdf")

If VarType(PDFnaam) = vbString Then
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFnaam, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=True
End If
End Sub
maar dan met xls. Hierin krijg ik nl wel alleen 1 sheet. Het is dus lastiger dan ik dacht. Is er geen SaveCopyAs code waarbij ik de sheet in de savecopyAS die sheets die er niet toe doen kan verwijderen.

Groetjes IK weer:thumb:
 
Hoi Excit,

Ik ben na jouw tip mbt het pompen van de sheet in een ander bestand na gaan denken. En heb de volgende code bij elkaar geprutst.

Private Sub butOpslaanalsxls_Click()


Dim mySht As Worksheet

Sheets("Ventilatielucht").Copy Before:=Sheets(1)
With ActiveSheet
.Name = "Ventilatielucht copy"
With .Cells
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
.Move
End With
filesavename = Application.GetSaveAsFilename( _
fileFilter:="Excel bestanden (*.xls), *.xls")

ActiveWorkbook.SaveAs Filename:=filesavename



End Sub

bedankt voor de hulp
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan