Opslaan als via VBA

Status
Niet open voor verdere reacties.

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
926
Hallo éénieder,

Onderstaande code gebruik ik om een excelbestand op te slaan a.d.h.v. de inhoud van twee cellen.

Op zich werkt dat prima echter wanneer het bestand al bestaat en je wilt deze niet overschrijven (dat overigens wel werkt), dan krijg je een foutmelding (methode safe-as van object_workbook is mislukt), de fout heeft te maken met de regel: (ActiveWorkbook.SaveAs Bestandsnaam).


Dim Bestandsnaam As String

Bestandsnaam = "C:\Documents and Settings\smidr00\Pilot van binnen naar buiten\BiBu\checklijsten\" & CStr(Range("g11").Value) & "\" & CStr(Range("H3").Value) & " " & CStr(Range("c2").Value) & ".xls"
ActiveWorkbook.SaveAs Bestandsnaam

With ActiveWorkbook
.Close False
End With

alvast bedankt
 
Zonder overbodige variabele:

Code:
sub opslag()
  Application.displayalerts=false
  With ActiveWorkbook
    .SaveAs "C:\Documents and Settings\smidr00\Pilot van binnen naar buiten\BiBu\checklijsten\" & [G11] & "\" & [H3] & " " & [C2] & ".xls"
    .Close False
  End With
End Sub

NB. Het is immer beter ook het werkblad, waarin de range zich bevindt aan te duiden; bijv
Code:
   .SaveAs "C:\Documents and Settings\smidr00\Pilot van binnen naar buiten\BiBu\checklijsten\" & [Blad1!G11] & "\" & [Blad1!H3] & " " & [Blad1!C2] & ".xls"
 
Laatst bewerkt:
Bedankt voor je snelle reactie echter krijg ik een gele balk in de "safe as" regel, zelfs nadat ik de werkmappen er aan heb toegevoegd. Even voor jouw informatie: het pad had ik niet juist maar dat moet volgens mij niet uitmaken wanneer je deze hebt gecorrigeerd.
zie vb.

.SaveAs "C:\Documents and Settings\smidr00\Pilot van binnen naar buiten\BiBu\Startermap\nog te bezoeken\" & [Totaaloverzicht!G11] & "\" & [Totaaloverzicht!H3] & " " & [Totaaloverzicht!C2] & ".xls"
 
kontroleer of de cellen in het werkblad geldige gegevens voor een bestandsnaam bevatten.
 
De inhoud van de cellen is correct dat weet ik zeker omdat deze op de oude manier wel functioneert als ik op "ja" klik. Het probleem was wanneer ik op "nee" of op annuleren klik, dan kreeg ik een foutmelding. Ik moet zeggen - na wat geexperimenteer - dat onderstaande code wel werkt met het gevolg dat het programma niet meer vraagt of ik het bestand wil opslaan, op deze wijze overschrijft hij altijd het oude bestand, bovendien is het de bedoeling dat hij het bestand in twee verschillende mappen zet, het eerste lukt wel maar bij het tweede geeft hij weer een foutmelding terwijl ik exact dezelfde codes gebruik excl. de eerste regel.

Dim Bestandsnaam As String
Bestandsnaam = "C:\Documents and Settings\smidr00\Pilot van binnen naar buiten\BiBu\Startermap\nog te bezoeken\" & CStr(Range("H3").Value) & " " & CStr(Range("c2").Value) & ".xls"
Application.DisplayAlerts = False
With ActiveWorkbook
ActiveWorkbook.SaveAs Bestandsnaam
.Close False
End With
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan