excel file wegschrijven

Status
Niet open voor verdere reacties.

Justme47

Gebruiker
Lid geworden
23 jul 2008
Berichten
37
In excel heb ik een file gemaakt en deze wil ik wegschrijven onder een andere naam en naar een map naar keuze.
Graag wil ik dit doen door het openen van een verkennerscherm en dan te browsen naar de gewenste map.

Hoe kan ik dit in VBA doen?

Gerhard
 
Code:
Application.FileDialog(msoFileDialogSaveAs).Show
Bv. te gebruiken voor het sluiten.
 
bedankt voor uw reactie.

Code:
Application.FileDialog(msoFileDialogSaveAs).Show
is inderdaad de eyeopener!

In het VBA Express forum vond ik de volgende routine:

Code:
Sub ShowSaveAsDialog()
Dim dlgSaveAs As FileDialog, strFile As String
Set dlgSaveAs = Application.FileDialog(msoFileDialogSaveAs)
dlgSaveAs.Show
On Error Resume Next
strFile = dlgSaveAs.SelectedItems(1)
If Err Then MsgBox "Cancel was pressed!": Exit Sub
ActivePresentation.SaveAs strFile
MsgBox "You saved the file to:" & vbNewLine & strFile
End Sub
Dit lijkt goed te werken maar slaat de file niet op.
Daarom heb ik er een opslagroutine ingezet (ingesprongen)

Code:
Sub ShowSaveAsDialog()
Dim dlgSaveAs As FileDialog, strFile As String
Set dlgSaveAs = Application.FileDialog(msoFileDialogSaveAs)
dlgSaveAs.Show
On Error Resume Next
strFile = dlgSaveAs.SelectedItems(1)
If Err Then MsgBox "Cancel was pressed!": Exit Sub
ActivePresentation.SaveAs strFile

        ActiveWorkbook.SaveAs Filename:=strFile, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
        ActiveWorkbook.Save
        ActiveWorkbook.Close


MsgBox "You saved the file to:" & vbNewLine & strFile
End Sub
Nu werkt het wel maar het bezwaar is dat wanneer je een bestaande file probeert te overschrijven, je twee keer een waarschuwing krijgt.

Hoe kan deze routine worden verbeterd?
NB: De routine werkt in Excel2003 maar loopt vast in Excel 2000 (moet wel kunnen werken in Excel 2000)

Gerhard
 
Laatst bewerkt:
Probeer het zo eens.
Code:
Sub ShowSaveAsDialog()
 Dim dlgSaveAs As FileDialog, strFile As String
   Set dlgSaveAs = Application.FileDialog(msoFileDialogSaveAs)
    dlgSaveAs.Show
On Error Resume Next
   strFile = dlgSaveAs.SelectedItems(1)
      If Err Then MsgBox "Cancel was pressed!": Exit Sub
Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=strFile, FileFormat:=xlNormal, _
      Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
Application.DisplayAlerts = True
    MsgBox "You saved the file to:" & vbNewLine & strFile
  ActiveWorkbook.Close
End Sub
 
Bovenstaande nieuwe routine werkt prima in excel2003.
In excel 2000 komt er bij de regel
Code:
Dim dlgSaveAs As FileDialog
de fout melding: "Een door de gebruiker gedefinieerd gegevenstype is niet gedefinieerd.

Kan dit worden omzeild of opgelost?

mgr. Gerhard
 
FileDialog wordt niet ondersteund door XL2000. Schakel over op Application.GetSaveAsFilename
 
met
Code:
Application.GetSaveAsFilename
werkt de onderstaande routine in excel2000:

Code:
Sub wegschrijf()
MsgBox "in het volgende scherm svp de wegschrijfnaam invoeren en de wegschrijfmap kiezen"
fileSaveName = Application.GetSaveAsFilename( _
    fileFilter:="Excel Files (*.xls), *.xls")
If fileSaveName <> False Then
    MsgBox "Save as " & fileSaveName
End If
        ActiveWorkbook.SaveAs Filename:=fileSaveName, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
        ActiveWorkbook.Save
        ActiveWorkbook.Close
End Sub

bedankt Harry en Rudi

gr, Gerhard
 
Graag gedaan.
Tip: Bij het programmeren voor verschillende versies neem je best de gewoonte aan om te programmeren in de oudste versie, aangezien er in de meeste gevallen een voorwaartse comptabiliteit bestaat tussen de verschillende versies. Uitzondering: Application.FileSearch dat om de een of andere reden niet meer bestaat in XL2007
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan