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

VBA Bestaande workbook opslaan

Status
Niet open voor verdere reacties.

erik1235

Gebruiker
Lid geworden
13 nov 2008
Berichten
29
Vanuit een bestaand workbook maak ik, met VBA, een nieuw workbook en sla dit op.
Zolang het nieuwe workbook niet eerder werd opgeslagen werkt het prima. De code geeft een foutmelding als het nieuwe workbook, dat reeds eerder werd opgeslagen, opnieuw save.

Ik heb de code nochtans overgenomen uit het boek Mastering VBA.

Code:
Option Explicit
Sub main()
Dim sPath As String
'Maak vanuit de code van de huidige workbook
'en nieuwe workbook en sla op nieuweWB.xls in dezelfde directory
sPath = ActiveWorkbook.Path
MaakNieuweWorkbook sPath, "nieuweWB.xls"
End Sub

Sub MaakNieuweWorkbook(strpad As String, wbNaam As String)
Dim mySiNW As Integer 'variabele om het standaard aantal worksheets in nieuw workbooks op te vangen
    'Voorbereiding
       'eindigt het pad op "\"
        If Right(strpad, 1) <> "\" Then
            strpad = strpad & "\"
        End If
    'vang het standaard aantal worksheets op
    mySiNW = Application.SheetsInNewWorkbook
    'wijzig het standaard aantal voor deze toepassing
    Application.SheetsInNewWorkbook = 1
    'nieuwe workbook
    Workbooks.Add
    'zet standaard terug
    Application.SheetsInNewWorkbook = mySiNW
    'sla workbook op
        'check of reeds en workbook met deze naam bestaat
        If Does_File_Exist(strpad, wbNaam) Then
            Workbooks(strpad & wbNaam).Save  'PROBLEEM XXXXXXXXXXXXXX
        Else
            ActiveWorkbook.SaveAs Filename:=strpad & wbNaam
        End If
End Sub

Function Does_File_Exist(sPad As String, sNaam As String) As Boolean
Dim StrTestFile As String
    If sNaam = "" Then End
    If Right(sPad, 1) = "\" Then
        StrTestFile = Dir(sPad & sNaam)
    Else
        StrTestFile = Dir(sPad & "\" & sNaam)
    End If
    If Len(StrTestFile) = 0 Then
        Does_File_Exist = False
    Else
        Does_File_Exist = True
    End If
End Function

Ik werk met Excel 2003, NL

Wat doe ik fout? :eek:

Alvast stevig bedankt voor je spontane ondersteuning!

Erik
 

Bijlagen

  • Bewaar bestaande workbook.xls
    28 KB · Weergaven: 35
Ik heb de vraag wat té omstandig willen illustreren.

Mijn vraag komt neer op:

Workbooks(c:\temp\test.xls).Save

In de veronderstelling dat c:\temp\test.xls bestaat,
Is dit correcte code? Ik krijg een foutmelding.
 
Code:
Workbooks("c:\temp\test.xls").Save
 
Kan dat niet simpeler ?

Code:
Sub opslaan()
  j=0
  Workbooks.add
  c0="E:\voorbeeld\test"

  do 
   if dir(c0 & ".xls")="" then Activeworkbook.saveas c0 & ".xls"
   j=j+1
   c0=c0 & format(j,"000")
  loop until activeworkbook.saved
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan