Vraag


Acties:
  • 0 Henk 'm!

  • Edwin_VH
  • Registratie: Februari 2011
  • Laatst online: 01-09 17:21
Gezien MS Word geen eigen backup functie heeft, zo ik graag zelf 2 macro's toevoegen aan het normal.dot bestand.


Een eerste macro maakt een kopie van het huidige bestand en geeft dit de naam "D:\MSbackup0001", maar laat originele document open, waardoor ik gewoon verder kan werken aan mij originelen document.

Een volgende keer dat ik de macro gebruik, wordt dit D:\MSbackup0002" enz..

Een tweede macro doet basically hetzelfde, maar sluit ook het originele document.


Mis enig zoeken vond ik deze macro, die ongeveer doet wat ik zou willen, met dien verstande dat:

- er geen vaste naam is voor het backupbestand: dit dient voor elk bestand te worden opgegeven (dialoogvenster)

- er geen incrementele bestandsnummering is

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit 
Sub SaveCopyAs() 
    Const lCancelled_c As Long = 0 
    Dim sSaveAsPath As String 
    sSaveAsPath = GetSaveAsPath 
    If VBA.LenB(sSaveAsPath) = lCancelled_c Then Exit Sub 
     'Save changes to original document
    ActiveDocument.Save 
     'the next line copies the active document
    Application.Documents.Add ActiveDocument.FullName 
     'the next line saves the copy to your location and name
    ActiveDocument.SaveAs sSaveAsPath 
     'next line closes the copy leaving you with the original document
    ActiveDocument.Close 
End Sub 
Public Function GetSaveAsPath() As String 
    Dim fd As Office.FileDialog 
    Set fd = Word.Application.FileDialog(msoFileDialogSaveAs) 
    fd.InitialFileName = ActiveDocument.Name 
    If fd.Show Then GetSaveAsPath = fd.SelectedItems(1) 
End Function

...

Relevante software en hardware die ik gebruik:

PC i5, Windows 16 en MS Word 2016
...

Zelf reeds gevonden: zie hoger.
...

[ Voor 0% gewijzigd door F_J_K op 17-03-2018 19:40 ]

Kortrijk | 5250 Wp Sunpower - 9x375 WZW 45° + 5x375 ONO 45° | Solis 3,6 kW | Batterij: Pylontech 9,6 kWh

Alle reacties


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Begrijp ik goed dat je willekeurige code van internet hebt geplukt zonder te weten wat het concreet doet? Nooit doen... Zorg dat je de code snapt - en dus ook kunt aanvullen en troubelshooten.

Waar loop je vast met je niewe vragen? Filename: uitvragen in een dialoogvenster, variabele in de huidige code aanpassen. Nummering: met Dir() kan je checken of een file bestaat, in een loop checken vanaf 1.

Maar: ik zou dit heel erg afraden, ook als je al wel VBA kunt dromen. Dit gaat gegarandeerd een keer fout, ook door door het gebruik van betekenisloze filenames.

Gebruik de ingebouwde backup-functie die er wel is en leer jezelf aan regelmatig op ctrl-s te drukken. Hooguit zou ik een bijv dagelijkse kopie suggereren. Met de originel filename plus de oude datum, oid. Maar alleen als je gehele de code snapt etc.

offtopic:
Windows 16?

Ik zal de code in je post overigens even voorzien van code tabs, zodra het leesbaar wordt. Doe dat ajb voor evt volgende code ook zelf - en let op de voor leesbaarheid belangrijke indenting.

[ Voor 0% gewijzigd door Lustucru op 17-03-2018 19:44 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • +1 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 21:10
Eens met @F_J_K ...

Het kan allemaal wel, maar kun je niet beter de ingebouwde features gebruiken?
https://support.office.co...4b-4415-a3ff-a80415b92f99

Acties:
  • 0 Henk 'm!

  • Will_M
  • Registratie: Maart 2004
  • Niet online

Will_M

Intentionally Left Blank

@breew Ik snap sowieso niet waarom 'ie (TS) een (enbedded VBA) macro zou willen gaan gebruiken om dit soort, toch redelijk standaard, MS Office 2000 functies te gaan simuleren?.

[ Voor 6% gewijzigd door Will_M op 17-03-2018 20:56 ]

Boldly going forward, 'cause we can't find reverse