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

Werkblad opslaan als waarde uit cel

Status
Niet open voor verdere reacties.

CorVerm

Redacteur
Lid geworden
11 mrt 2005
Berichten
5.272
Beste mensen,

Ik wil een werkblad opslaan als een nieuw bestand. Dat kan volgens mij door het werkblad eerst te kopiëren naar een nieuw bestand (zie code). Echter, ik wil het nieuwe bestand als naam de waarde uit D2 geven. Hoe kan dat gerealiseerd worden?

Code:
Sub Kopie_factuur()
Sheets("Factuur WSP").Select
 Sheets("Factuur WSP").Copy
  ActiveWorkbook.SaveAs Filename:="D:\Excel\Map3.xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
End Sub
 
Probeer deze er eens tussen te proppen
Code:
ActiveWorkbook.SaveAs Filename:=[A1]
 
Dit werkt op zich wel Michel, maar hoe definieer ik de opslaglocatie?
 
Definiëren van opslaglocatie

Code:
ActiveWorkbook.SaveAs Filename:="D:\Excel\" & [A1]

of (opslaan als excel document)

Code:
ActiveWorkbook.SaveAs Filename:="D:\Excel\" & [A1] & ".xls"

Gr Robert
 
Laatst bewerkt:
Cor,
om een blad via vba te kopiëren, is het niet nodig om het eerst te selecteren, die opdracht kun je dus weglaten.
Als:
- D:\Excel de map is waarin je het nieuwe bestand wil opslaan;
- die map bestaat;
- in de geopende map het blad "Factuur WSP" bestaat;
- in D2 van dat blad wat staat;
dan kun je gebruiken:
Code:
Sub macro1()
Application.ScreenUpdating = False
'Deze code is geschreven door Zapatr
Sheets("Factuur WSP").Copy
With ActiveWorkbook
.SaveAs "D:\Excel\" & Range("D2").Value & ".xlsx"
.Close
End With
Application.ScreenUpdating = True
End Sub
 
Allen hartelijk dank, hier heb ik weer van geleerd.

@zapatr,
Mooie code:thumb:
 
Er doet zich nog een probleem voor. Wanneer het bestand reeds bestaat krijg ik daar uiteraard een melding van. Klik ik op Annuleren dan krijg ik fout 1004 tijdens uitvoering. Methode SaveAs van Object is mislukt. Het rode gedeelte in de code wordt geel gemarkeerd weergegeven in de Editor. Hoe kan dat opgelost worden?
Code:
Sub macro1()
Application.ScreenUpdating = False
'Deze code is geschreven door Zapatr
Sheets("Factuur WSP").Copy
With ActiveWorkbook
[COLOR="red"].SaveAs "D:\Excel\" & Range("D2").Value & ".xlsx"[/COLOR]
.Close
End With
Application.ScreenUpdating = True
End Sub
 
Zet de display alerts tijdelijk uit

Als u de Display Alerts van de applicatie tijdelijk uitzet krijgt u de melding niet wanneer er op Annuleren wordt gedrukt.

Dat gaat als volgt:

Code:
Sub macro1()
Application.ScreenUpdating = False
'Deze code is geschreven door Zapatr
Sheets("Factuur WSP").Copy
With ActiveWorkbook
Application.DisplayAlerts = False
.SaveAs "D:\Excel\" & Range("D2").Value & ".xlsx"
.Close
Application.DisplayAlerts = True
End With
Application.ScreenUpdating = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan