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

bestand automatisch sluiten

Status
Niet open voor verdere reacties.

knarfje

Gebruiker
Lid geworden
12 mrt 2001
Berichten
817
Hoi,

Hieronder een deel van mijn code om vanuit een template een nieuw bestand aan te maken.
Nu is het de bedoeling dat het nieuw aangemaakte bestand direct word gesaved en opgeslagen zonder vragen en popups of je het wel wilt.
Volgens mij heb ik dat juist gedaan met
.close True
maar toch vraagt ie en sluit ie bastand niet af.:shocked:

Code:
Application.DisplayAlerts = False                              
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & [A1] & [A2] & ".xls" 
Workbooks.Open ThisWorkbook.Path & "\" & [A1] & [A2] & ".xls"
For lCt = ActiveWorkbook.Worksheets.Count To 1 Step -1
    If Worksheets(lCt).Name <> "Logistiek dagbericht" And Worksheets(lCt).Name <> "Data Lev" Then
Worksheets(lCt).Delete
End If
Next
Application.DisplayAlerts = True
With ActiveWorkbook
[B].Close True[/B]
  End With
End Sub
 
Ipv.

Code:
.Close True

probeer:

Code:
.Save
.Close 0

en als je echt zeker wil zijn:

Code:
.Save
.Saved = True
.Close 0
 
Hallo knarfje,

Suggestie: selecteer DisplayAlerts, en druk op F1 ;)

Met vr gr
Jack
 
Laatst bewerkt:
Ipv.
probeer:
Code:
.Save
.Close 0

Die werkt goed, maar er worden nu twee bestanden opgeslagen vanuit de template.
één bestand zonder dat het te verwijderen tabblad is verwijderd
en
één bestand waar wel het tabblad is verwijderd maar met een oplopend nummer achter de bestandsnaam.

Wat gaat er nou niet goed?
 
Inderdaad. Mits het gebruik van de F8 toets in VBE zal je zien dat er een kopie gemaakt wordt van het bestand met de code, en tevens wordt er een bestand geopend uit dezelfde map. In dat bestand wordt wat verwijderd waarna het opgeslagen wordt. Je hebt toch zelf die code geschreven?
 
Ik heb zelf de code niet geschreven, ik ben niet zo`n ster in VBA.(maar da`s toch al duidelijk?)

Wat moet ik aanpassen in de code om direct het bestand op te slaan waar dus al wat uit verwijderd is, zonder volgnummer?
 
Ik heb zelf de code niet geschreven, ik ben niet zo`n ster in VBA.(maar da`s toch al duidelijk?)

Wat moet ik aanpassen in de code om direct het bestand op te slaan waar dus al wat uit verwijderd is, zonder volgnummer?

En moet het bestand met de code "ThisWorkbook" dan nog opgeslagen worden?
 
Probeer het eens op deze manier
Code:
Application.DisplayAlerts = False
For lCt = ThisWorkbook.Worksheets.Count To 1 Step -1
    If Worksheets(lCt).Name <> "Logistiek dagbericht" And Worksheets(lCt).Name <> "Data Lev" Then
Worksheets(lCt).Delete
End If
Next
Application.DisplayAlerts = True
With ThisWorkbook
    .SaveAs ThisWorkbook.Path & "\" & [A1] & [A2] & ".xls"
    .Close True
End With
End Sub
 
Dat ziet er goed uit warmbakkertje nu slaat ie het bestand weer goed op.
Alleen... word de Template ook gesloten en dat is niet de bedoeling omdat er na het opgeslagen bestand nog meer bestanden aangemaakt moeten worden.
 
Alleen... word de Template ook gesloten en dat is niet de bedoeling omdat er na het opgeslagen bestand nog meer bestanden aangemaakt moeten worden.

Als je in de code kijkt zie je .close true staan je kan altijd een ' voor . close true zetten en eens testen , is er geen verschil haal je de ' weer weg en is je macro code nog intact , is het wel de oplossing kan je deze laten staan of de hele regel . close true weg halen ;)
 
. close true had ik al geprobeerd weg te halen maar dat niet het gewenste resultaat:confused:
Als ik dat weghaal word het nieuw gemaakte bestand nl niet gesloten.
 
Laatst bewerkt:
Als je een template aanklikt wordt er sowieso een kopie geopend, dit om het origineel te vrijwaren van wijzigingen. De bedoeling is nu echter om de kopie te wijzigen en op te slaan en daarna terug een nieuwe kopie van de template te openen niet om met de 1ste kopie meerdere kopieën te maken.
 
Als je een template aanklikt wordt er sowieso een kopie geopend, dit om het origineel te vrijwaren van wijzigingen. De bedoeling is nu echter om de kopie te wijzigen en op te slaan en daarna terug een nieuwe kopie van de template te openen niet om met de 1ste kopie meerdere kopieën te maken.

Klopt helemaal ja, zo zou het moeten.
Het vreemde is dat ik het wel voor elkaar had in een gewoon .xls bestand met onderstaande code maar met de sjabloon lukt het dus niet:o

Code:
Application.DisplayAlerts = False                                  'bestand exporteren en tabblad Totaal Data verwijderen
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & [A1] & [A2] & [B3] & ".xls" ' ten behoeve van het mee exporteren van This Worksheet code
Workbooks.Open ThisWorkbook.Path & "\" & [A1] & [A2] & [B3] & ".xls"
For lCt = ActiveWorkbook.Worksheets.Count To 1 Step -1
    If Worksheets(lCt).Name <> "Logistiek dagbericht" And Worksheets(lCt).Name <> "Data Lev" Then
Worksheets(lCt).Delete
End If
Next
Application.DisplayAlerts = True
With ActiveWorkbook
.Close True
  End With
End Sub
 
Dit werkt toch zoals jij vraagt
Code:
Sub tst()
Application.DisplayAlerts = False                                  'bestand exporteren en tabblad Totaal Data verwijderen
ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\" & [A1] & [A2] & [B3] & ".xls" ' ten behoeve van het mee exporteren van This Worksheet code
Workbooks.Open ThisWorkbook.Path & "\" & [A1] & [A2] & [B3] & ".xls"
For lCt = ActiveWorkbook.Worksheets.Count To 1 Step -1
    If Worksheets(lCt).Name <> "Logistiek dagbericht" And Worksheets(lCt).Name <> "Data Lev" Then
Worksheets(lCt).Delete
End If
Next
Application.DisplayAlerts = True
ActiveWorkbook.Close True
End Sub
 
Nee dat wil dus niet want er komt steeds de popup voor opslaan als....
 
Laatst bewerkt:
Dit leid nergens naar. Als ik een kopie v/e template open en jouw code daarop draai gebeurt er precies wat jij wil, zonder popups. Ik denk dat het tijd wordt voor een voorbeeld van jouw template met de aanwezige code, want dit is tijdverspilling zowel de jouwe als de mijne.
 
Hierbij een voorbeeld van de template(ontdaan van veel data).Als zip bestand omdat je .xlt niet kan uploaden.

Aan de hand van de knop Kopieer naar Data lev op tabblad "Totaal Data" zal er een nieuw bestand worden aangemaakt met nieuwe gegevens.
Deze moet dan worden opgeslagen en gesloten worden en de tempalte weer open zijn.

Trouwens:
Als ik geen template gebruik maar werk vanuit een .xls bestand gaat het wel goed?!
 

Bijlagen

Laatst bewerkt:
Test !! Bij mij doet hij nu wat hij moet doen. Je moet in de macro nog enkel het pad aanpassen naar de xlt-file.
 

Bijlagen

Laatst bewerkt:
Thanks Warmbakkertje.

Dat ziet er zo op het eertse gezicht mooi uit.Ik zag ook dat je mijn (houtje/touwtje) VBA hier en daar hebt aangepast, Shapoo!!

Wat me wel opviel is dat de template niet open blijft staan. dat vind ik wel jammer omdat er veel bestanden achter elkaar aangemaakt moeten worden.
In het originele bestand staat nl data van 120 leveranciers ipv de twee in het voorbeeld.


Edit:
Ik zie het al.Ik moet zoals je al zij Je moet in de macro nog enkel het pad aanpassen naar de xlt-file.
 
Laatst bewerkt:
Ik heb de indruk dat deze vragen door dezelfde vragenstellen zowel op officeforum onder de alias frixel als bij worksheet.nl onder de alias frix worden geplaatst.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan