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

Default naam voor het opslaan als (VBA)

Status
Niet open voor verdere reacties.

Mohammad

Gebruiker
Lid geworden
5 nov 2009
Berichten
44
Beste lezer,

Zie printscreen voor de duidelijkheid.
De volgende wil ik realiseren met een VBA code:

bij het uitvoeren van een vba code het popup scherm Opslaan als verschijnt met een voorstel voor de mapnaam (in dit voorbeeld Mijn rooster uit cel C2).

Alvast bedankt voor het meedenken.

Mohammad
 

Bijlagen

  • Voorbeeld.png
    Voorbeeld.png
    170,7 KB · Weergaven: 82
TIP: neem deze actie eens op met de macrorecorder.....
en vervang "Mijn rooster" door Range("C2")
 
Bedankt voor je reactie. Ik zou graag handmatig het pad selecteren en daarna opslaan.

Met Mactrorecorder is dat mij niet gelukt
 
Als je daarmee bedoelt dat je de naam wilt gebruiken die in de op dat moment geselecteerd cel staat:
vervang de tekst "Mijn rooster" in je macro door ActiveCell.Value

Neem het eens op en plaats je bestand met de macro hier....
 
Hierbij de code die ik krijg na het opnemen:
ActiveWorkbook.SaveAs Filename:="U:\mijn rooster.xls", FileFormat:=xlExcel8 _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

Voor de duidelijkheid ik wil het pad waar ik het bestand wil opslaan zelf handmatig selecteren. Het enige wat ik wil is dat het popup scherm te voorschijn komt met de bestandsnaam mijn rooster als vooringevuld.
 
Probeer eens of dit is wat je bedoelt:
Code:
Sub GetSaveAsFileName()
    Dim FileName As Variant
    Dim Filt As String
    Dim Title As String
    Dim FilterIndex As Long
        
    Filt = "Excel bestanden (*.xls), *.xls"
    FilterIndex = 5
    Title = "Selecteer een bestand"
    
    FileName = Application.GetSaveAsFileName( _
        InitialFileName:="U:\" & Range("C2"), _
        FileFilter:=Filt, _
        FilterIndex:=FilterIndex, _
        Title:=Title)
    If FileName = False Then
        Exit Sub
    End If
    
    With ActiveWorkbook
        .SaveAs FileName
        .Close
    End With
End Sub
 
Bedankt dit is inderdaad de bedoeling.

twee verbeterpunten:

1-na het opslaan sluit de macro het bestand af, kun je dit tegenhouden?
2- kan het bestand in .xlsx opgeslagen worden?
 
1 - Wat dacht je van het verwijderen van de .Close?
2- Nee, omdat hij VBA code bevat kan dit niet. Wel als .xls, xlsb of xlsm

Dit gebruikt het .xlsm formaat
Code:
With ActiveWorkbook
    .SaveAs Filename:=Filename, FileFormat:=52
End With
 
Laatst bewerkt:
Beste edmoor:
ik krijg een foutmelding op de laatste regel

dit wordt geel gemarkeerd: .SaveAs FileName:=FileName, FileFormat:=52

hierbij de gehele code

Dim FileName As Variant
Dim Filt As String
Dim Title As String
Dim FilterIndex As Long

Filt = "Excel bestanden (*.xlsx), *.xlsx"
FilterIndex = 52
Title = "Selecteer een bestand"

FileName = Application.GetSaveAsFilename( _
InitialFileName:="U:" & Range("C2"), _
FileFilter:=Filt, _
FilterIndex:=FilterIndex, _
Title:=Title)
If FileName = False Then
Exit Sub
End If

With ActiveWorkbook
.SaveAs FileName:=FileName, FileFormat:=52

End With
 
Laatst bewerkt:
Als je in C2 de extensie van het bestand meegeeft, geef dan niet die.xls op maar de .xlsm
Wijzig dit:
Filt = "Excel bestanden (*.xlsx), *.xlsx"

In:
Filt = "Excel bestanden (*.xls*), *.xls*"
 
Laatst bewerkt:
blijkbaar is het niet mogelijk wat ik wil.
Ik krijg het niet voor elkaar.

de volgende code gebruik ik nou maar het bestand wordt opgeslagen zonder extensie. voeg ik een extensie toe (.xls) dan wordt een als beschadigd gezien. zie ook bijlage.


Code:
Dim FileName As Variant
Dim Filt As String
Dim Title As String
Dim FilterIndex As Long

Filt = "Excel bestanden (*.xls*), *.xls*"
FilterIndex = 5
Title = "Selecteer een bestand"

FileName = Application.GetSaveAsFilename( _
InitialFileName:="U:" & Range("C2"), _
FileFilter:=Filt, _
FilterIndex:=FilterIndex, _
Title:=Title)
If FileName = False Then
Exit Sub
End If

With ActiveWorkbook
.SaveAs FileName:=FileName, FileFormat:=52

End With
 

Bijlagen

  • bestandsnaam.xlsm
    18,8 KB · Weergaven: 42
Wat je wil kan prima maar je moet de bestandsnaam wel een juiste extensie meegeven, in de cel of in de code.
Zo gaat dat in de code:
.SaveAs FileName:=FileName & ".xlsm", FileFormat:=52

Waarom je dan aan dat bestand zonder extensie de extensie .xls geeft is mij een raadsel.
Dat is een structuur die niet in een .xlsm aanwezig is dus nogal logisch dat je daar een foutmelding op krijgt als je dan dat bestand probeert te openen.
 
Laatst bewerkt:
Bedankt, het is prima zo.

wel jammer dat het niet als .xlsx opgeslagen kan worden.
 
Als het alleen om het uiterlijk van het bestandje gaat kun je ook overal de extensie verwijderen, stoor je je er ook niet aan dat het vanaf nu niet meer .xlsx is..
 
Bedankt, het is prima zo.

wel jammer dat het niet als .xlsx opgeslagen kan worden.

Den ben je niet goed op de hoogte van Excel structuren.
Je kan het bestand wel opslaan als .xlsx maar dan heb je in dat opgeslagen bestand geen VBA code meer.
 
Bedankt voor alle reacties!

Het nieuwe bestand dat opgeslagen wordt via deze code mag echter zonder vba code..dus xlsx is prima.

Het originele bestand blijft als xlsm met de vba code ..
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan