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

Gehele map opslaan

Status
Niet open voor verdere reacties.

hazesoft

Gebruiker
Lid geworden
11 nov 2004
Berichten
361
Hoe ziet een macro eruit wanneer ik een gehele map of ThisWorkbook wil opslaan?
 
Laatst bewerkt:
Hoe ziet een macro eruit wanneer ik een gehele map of ThisWorkbook wil opslaan?

Ik heb onderstaande code, maar je moet zelf de bestandsnaam kunnen invullen.

Code:
Sub OpslaanAls()
'
' OpslaanAls Macro

    ChDir "E:\Data\MS-excel\Rogier"
    ActiveWorkbook.SaveAs Filename:="E:\Data\MS-excel\Rogier\test.xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
 
Je haalt vanalles door elkaar.

Wat moet er opgeslaan worden? Het actieve bestand? Het bestand met de "opslaan" code in? Nog iets anders...?
 
Je haalt vanalles door elkaar.

Wat moet er opgeslaan worden? Het actieve bestand? Het bestand met de "opslaan" code in? Nog iets anders...?
Het actieve bestand moet met een macro worden opgeslagen onder een andere naam.
Dus zelf verplicht een bestandsnaam invoeren.
 
Dat doe je dan met GetSaveAsFilename.

Of
Code:
Application.Dialogs(xlDialogSaveAs).Show
Als het voor dit bestandje is ?
Code:
Sub Berekeningsblad_bewaren()
Dim filenaam As String
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With
filenaam = ActiveSheet.[C2].Value & ".xls"
[A1:J44].Copy
Workbooks.Add
Selection.PasteSpecial xlPasteValues, xlNone, False, False
Selection.PasteSpecial xlPasteFormats, xlNone, False, False
[A1].Select
'alle sheets verwijderen behalve het eerste
    For Each Sh In Worksheets
    If Sh.Index > 1 Then
    Sh.Delete
    End If
    Next
With ActiveWorkbook
    [COLOR="Red"]Application.Dialogs(xlDialogSaveAs).Show[/COLOR]
End With
With Application
    .DisplayAlerts = True
    .ScreenUpdating = True
End With
[A1].Select
MsgBox "File is opgeslagen"
End Sub
 
Laatst bewerkt:
Ik krijg dan deze foutmelding Daniël: Microsoft Visual Basic 400
 
Ik krijg dan deze foutmelding Daniël: Microsoft Visual Basic 400

IK heb het zonet getest ( wel een klant gekozen ) en het werkt bij mij .
Zo werkt hij ook en sluit het opgeslagen bestandje zoals voorheen .
Code:
Sub Berekeningsblad_bewaren()
Dim filenaam As String
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With
filenaam = ActiveSheet.[C2].Value & ".xls"
[A1:J44].Copy
Workbooks.Add
Selection.PasteSpecial xlPasteValues, xlNone, False, False
Selection.PasteSpecial xlPasteFormats, xlNone, False, False
[A1].Select
'alle sheets verwijderen behalve het eerste
    For Each Sh In Worksheets
    If Sh.Index > 1 Then
    Sh.Delete
    End If
    Next
With ActiveWorkbook
    .Application.Dialogs(xlDialogSaveAs).Show
    .Close
End With
With Application
    .DisplayAlerts = True
    .ScreenUpdating = True
End With
[A1].Select
MsgBox "File is opgeslagen"
End Sub
 

Bijlagen

  • hazesoft.jpg
    hazesoft.jpg
    91,6 KB · Weergaven: 63
Laatst bewerkt:
IK heb het zonet getest ( wel een klant gekozen ) en het werkt bij mij .
Voor de duidelijkheid:
De calculatiesheet heeft betrekking op een te bouwen hal met meerdere componenten, dus ook meerdere sheets.
Ik zal het bestand even bijvoegen,
 

Bijlagen

Voor de duidelijkheid:
De calculatiesheet heeft betrekking op een te bouwen hal met meerdere componenten, dus ook meerdere sheets.
Ik zal het bestand even bijvoegen,

Als je de hele map wil opslaan en een zelf te kiezen naam deze in een module
Code:
Sub sla_op()

    With activesheet
    
        Application.Dialogs(xlDialogSaveAs).Show
    
    End With
    
End Sub
 
Bij deze enkel het active blad dat open staat zal hij apart opslaan
Code:
Sub Copy_ActiveSheet()
    Dim wb As Workbook
  
    Application.ScreenUpdating = False
    activesheet.Copy
    Set wb = ActiveWorkbook
    With wb
        .Application.Dialogs(xlDialogSaveAs).Show
        .Close False
    End With
    Application.ScreenUpdating = True
End Sub

Doe ook eens Ctrl t en kijk wat ik heb bijgevoegd !
Ik heb je validatie lijst ook aangepast nu kan je op zijn minst een fout(je) rechtzetten . stel je hebt een profiel teveel gekozen hoe ging jij dat verwijderen in je A kolom ? nu kanje een lege cel selecteren
 

Bijlagen

Laatst bewerkt:
Doe ook eens Ctrl t en kijk wat ik heb bijgevoegd !
Ik heb je validatie lijst ook aangepast nu kan je op zijn minst een fout(je) rechtzetten . stel je hebt een profiel teveel gekozen hoe ging jij dat verwijderen in je A kolom ? nu kanje een lege cel selecteren

Geniaal Daniël, het werkt als een speer.
Dat foutje snap ik: een lege validatiecel ;).
Ik snap alleen niet waarom ik Ctrl/T moet doen.
 
Geniaal Daniël, het werkt als een speer.
Dat foutje snap ik: een lege validatiecel ;).
Ik snap alleen niet waarom ik Ctrl/T moet doen.

Het is Ctrl ( kleine ) t , dankomt er een userform tevoorschijn daar kan je eentabblad selecteren en ................
 

Bijlagen

  • hazesoft.jpg
    hazesoft.jpg
    99,9 KB · Weergaven: 57
Het is Ctrl ( kleine ) t , dankomt er een userform tevoorschijn daar kan je eentabblad selecteren en ................
OK, dat snap ik wel. Een aardigheidje dus.
Ik kan toch ook onderaan op de TAB klikken?
 
OK, dat snap ik wel. Een aardigheidje dus.
Ik kan toch ook onderaan op de TAB klikken?

Idd dat kan je ook , maar als er daar 30 tabbladen komen te staan gaat het vlugger via het userform , het is een gratis tooltje :D
 
Idd dat kan je ook , maar als er daar 30 tabbladen komen te staan gaat het vlugger via het userform , het is een gratis tooltje :D
Inderdaad Daniël, nu snap ik het nut van jouw tip.
Sorry ik ben maar een beginneling :confused:.
Ik ieder geval bedankt hè.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan