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

Functie in ThisWorkBook maar 1x gebruiken

Status
Niet open voor verdere reacties.
Dat kan ook direct met:
ActiveWorkbook.Close False

Of:
Application.Quit
 
Dat ligt er maar net aan wat je wil doen op het moment dat dat document opgeslagen is. Maar je kan natuurlijk ook eerst aan de gebruiker de vraag stellen of dat moet gebeuren.
 
:eek: Zit toch nog gigantisch te klooie maar het gaat niet goed.
Er moet toch echt op de achtergrond een copy van het bestand gemaakt worden. Dat zou dan een .xlsm moeten zijn omdat de routine in ThisWorkbook in de copy NIET geactiveerd mag worden.(anders word er steeds een copy van een copy gemaakt)

Ik hoop niet dat ik iedereen die hielp op de verkeerde been heb gezet en weer met nieuw denk werk opzadel.:eek:
 
Wat ik van je vraag begreep is dat je een bepaald document opent met in de Workbook_Open een stukje code die een kopie van het document opslaat en die dan geen code meer mag bevatten in de Workbook_Open. Als je een document opslaat met een bepaalde naam, extensie .xlsx en FileFormat 51, dan heb je een kopie van dat zojuist geopende document en dan zonder de VBA code.
 
Wat ik van je vraag begreep is dat je een bepaald document opent met in de Workbook_Open een stukje code die een kopie van het document opslaat en die dan geen code meer mag bevatten in de Workbook_Open. Als je een document opslaat met een bepaalde naam, extensie .xlsx en FileFormat 51, dan heb je een kopie van dat zojuist geopende document en dan zonder de VBA code.

klopt helemaal MAAR.. je zit dan gelijk in de kopie te werken en dat is niet de bedoeling.
Het moet dus echt in de achtergrond gebeuren
 
Nu heb ik wel deze code gevonden
Code:
Sub SaveCopyAs_Without_Macros()

    ActiveWorkbook.Sheets.Copy 'creates new workbook without macros"
    'The New workbook copy is now the Active workbook
    ActiveWorkbook.SaveAs Filename:="C:\Temp\posten & voorraadbestand.xlsx", FileFormat:=51
    ActiveWorkbook.Close
    
End Sub

Maar dan weer deze foutmelding.
fout4.png
 
Ik ben eruit.

Doe het nu zo bij het AFsluiten. Dan blijf je er eerst nog in werken.

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    MyFileName = "C:\Temp\posten & voorraadbestand.xlsx"
    If Len(Dir(MyFileName)) Then
        SetAttr MyFileName, vbNormal
        Kill MyFileName
    End If
    Application.DisplayAlerts = False
     ActiveWorkbook.SaveAs MyFileName, FileFormat:=51
     SetAttr MyFileName, vbReadOnly
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan