Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VB] Excel bepaalde werkmap opslaan

Pagina: 1
Acties:
  • 803 views sinds 30-01-2008
  • Reageer

  • BjorntobeWild
  • Registratie: Januari 2005
  • Laatst online: 17-03-2023
Hoi,

Ik heb een excelbestand met daarin een macro welke om de 10 seconden het bestand opslaat.
Het bestand wordt opgeslagen met ActiveWorkbook.Save.

Als ik nu een ander workbook activeer (ander bestand open of een nieuw bestand). Dan gaat de macro die workbook opslaan.
Als ik het bestand afsluit en excel zelf open laat staan blijft de macro ook lopen en wilt hij het bestand weer openen.

Ik heb lopen zoeken naar een commando om alleen een bepaald workbook op te slaan, maar kan niks vinden. Zoiets als workbook("bestand.xls").Save.

Hier de code die ik heb gebruikt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Public Sub Workbook_Open()
    Dim strSave As Boolean
    Application.OnKey "{RETURN}", "SaveFile"
    strSave = True
    Call TimeSave
End Sub

Sub SaveFile()
    ActiveWorkbook.Save
    Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
End Sub
Public Sub TimeSave()
    Application.OnTime (Now + TimeValue("0:0:10")), "TimeSave2"
    workbook1.Save
End Sub

Public Sub TimeSave2()
    Application.OnTime (Now + TimeSerial(0, 0, 10)), "TimeSave"
    ActiveWorkbook.Save
End Sub

  • Jay-P
  • Registratie: Oktober 2003
  • Laatst online: 04-06 00:39
activeworkbook.saveas [filename]

Lijkt me trouwens iets wat je zelf makkelijk had kunnen uitvogelen. Even googlen en je hebt het binnen een minuut gevonden.

[edit]mischien verkeerd gelezen, anders iets proberen met workbook open/close, ik geloof niet dat je een workbook kan opslaan die niet geopend is, zie er eigenlijk ook het nut niet van in aangezien er dan ook niets (nieuws) is om op te slaan, of ik moet je vraag verkeerd interpreteren.

[ Voor 47% gewijzigd door Jay-P op 15-01-2008 12:26 ]


  • BjorntobeWild
  • Registratie: Januari 2005
  • Laatst online: 17-03-2023
Als ik het bestand waar deze macro in staat open en ik open hiernaast een nieuw werkblad, ziet hij het nieuwe werkblad als het actieve werkblad. Gevolg is dat hij dan dat bestand gaat opslaan, wat ik dus niet wil.
Ik denk dat met ActiveWorkbook.SaveAs hetzelfde effect heeft. Gevolg alleen hier is dat het bestand met de macro overschreven wordt met het nieuwe werkblad. Of vergis ik mij hierin?

Gr.

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Je kunt in de vbeditor je werkblad een unieke naam geven. Vervolgens kun je deze opslaan met de volgende code:
Visual Basic:
1
   <uniekeNaam>.ThisWorkbook.Save

  • Jay-P
  • Registratie: Oktober 2003
  • Laatst online: 04-06 00:39
Klopt idd, wat volgens mij je probleem oplost is de code niet in een 'algemene' macro stoppen maar in het werkboek zelf. De code handelt dan alleen op het werkboek zelf en niet op alle werkboeken die je toevallig in excel open hebt staan. Ook moet je dan mischien activeworkbook vervangen door thisworkbook, wat als je alleen dat betreffende werkboek wil opslaan sowieso een goed idee is.

[edit] wat hierboven staat dus ;), overigens is een unieke naam eraan meegeven volgens mij niet eens nodig dan, maar ik heb al te lang geen VBA meer gedaan dus dat durf ik niet met zekerheid te zeggen ;)

[edit2] volgens mij worden de termen werkblad en workbook ook een beetje door elkaar gehaald hier, met nieuw werkblad openen bedoel je neem ik aan een (compleet) nieuw bestand of alleen een nieuw blad/tab ?

[ Voor 36% gewijzigd door Jay-P op 15-01-2008 13:00 ]