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

opslaan document van Template

Status
Niet open voor verdere reacties.

knarfje

Gebruiker
Lid geworden
12 mrt 2001
Berichten
817
Hallo,

Ik ben al een paar weken met onderstaand bestand bezig en ben al aardig opgeschoten.
Ik zit alleen nog met het opslaan ervan.

Wat ik heb is een Sjabloon dat gebruikt word om er andere bestanden mee aan te maken.(als alle data erin staat plm 80 bestanden)
Op sheet Totaal Data word dmv de knop kopieer data lev een macro gestart om een nieuw .xlt bestand aan te maken.
Dit .xlt bestand is bestemd voor de leverancier die hiermee moet gaan werken en die dit bestand dus van mij krijgt aangeleverd.
De bestandsnaam word aangemaakt uit de velden A1 en A2 uit de sheet Logistiek dagbericht.
Tot zover geen probleem volgens mij.Bestand word aangemaakt en opgeslagen als een nieuw .xlt bestand dat de leverancier kan/moet gaan gebruiken.

Het probleem ontsaat nu met het nieuw aangemaakte .xlt document.

Ik zou willen dat als het nieuw aangemaakte .xlt document de eerste keer word geopend(door leverancier) module1 word verwijderd.(of het zou moeten kunnen om het te doen voordat dit document werd aangemaakt maar dat lukte mij niet omdat de macro in module1 nog loopt tijdens aanmaken.


Het nieuw aangemaakte .xlt document moet bij de leverancier bij het sluiten net zo opgeslagen worden als de naam maar dan met de datum erin.
De macro staat al in het document allen krijg ik het niet voor elkaar om te zorgen dat dit dus pas werkt in dit nieuw aangemaakte .xlt document.

Ik hoop eea duidelijk genoeg uitgelegd te hebben, alvast mijn dank.:D
 

Bijlagen

Hallo knarfje,

Om zeker te weten of ik je vraag goed begrepen heb:

Je wilt dat in de bestanden van de gebruikers niet "module 1" voorkomt?
Als dat de vraag is dan is deze link misschien bruikbaar.

Als je vraag toch een andere is dan lees ik dat natuurlijk graag!

Groet,
Hunac
 
Die delete code voor de module had ik ook gevonden maar aangezien de macro in module1 nog loopt krijg je de module niet verwijderd.

De code om de module te verwijderen moet volgens mij wel in module1 staan omdat daar ook de code in staat om het nieuw aan te maken .xlt bestand aan te maken en te saven.

:oIk ben maar een noob in VBA dus ik kan het ook gewoon fout hebben:o
 
Je kunt verschillende modules maken in hetzelfde bestand, en de macro die je aanroept hoeft niet perse in module 1 te staan. Ook kun je de code aanpassen zodat je module 2 verwijdert.

Richard
 
richard1970, dat begrijp ik maar....

Macro in module1 loopt en daar staat ook het saven van het bestand in.

Als ik dus de deletethismodule draai vanuit een andere module word het bestand niet opgeslagen zoals het in module1 stond.
Ik zou dan in de deletethismodule weer iets moeten zetten om het betstand te openen.(maar welk bestand?want het krijgt steeds een andere benaming ivm datum in naam)daarna weer te saven maar dan gaat ook weer de melding komen dat het bestand al bestaat!

Dus zal de module verwijderd moeten worden voor de 1e keer opslaan.
 
Hallo knarfje,

Je merkt op dat je niet zo veel weet van vba. Is geen probleem. Natuurlijk ben ik benieuwd of je de meegeleverde code volgt!

Zie de bijlage. Merk op dat de beveiligingsinstellingen erg laag staan, dat moet wel om de code te kunnen uitvoeren. Maar toch ter info.

Het excel doc in de bijlage doet volgensmij wat je graag zou willen. Verwerk je eigencode in de tweede module.

Groet,
Hunac.

PS. sluit aan bij wat richard1970 opmerkt.
 

Bijlagen

Hunac,

Kan je mij een beetje vertellen wat deze code doet.Dan begrijp ik hem misschien een beetje en lukt het om in mijn code te verwerken:o
 
Hallo knarfje,

Hieronder de twee modules. Onder elke module een toelichting in woorden per regel.

M01_HoofdRoutine
Code:
Sub HoofdRoute()
    If Not StartRest Then Exit Sub
    ActiveWorkbook.Save True
End Sub
Toelichting:
Start van de routine met naam HoordRoute
Als StartRest niet waar is dan deze routine beeindigen. Als het wel waar is dan doorgaan.
Sla het op dit moment active werboek op. True geeft aan dat het antwoord op de vraag wijzigingen opslaan ja is.
Eind van de subroutine.

StartRest is een functie in een andere module. De functie geeft waar terug als hij uitgevoerd is. Anders is hij niet waar.

M02_VerwijderRoutineEnVerwijder
Code:
Function StartRest() As Boolean
    Dim pad As String
     pad = ThisWorkbook.Path
    ThisWorkbook.SaveAs pad & "\Nieuwenaam"
    StartRest = True
    Dim vbCom As Object
    MsgBox "Hi, I will delete myself "
    Set vbCom = Application.VBE.ActiveVBProject.VBComponents
    vbCom.Remove VBComponent:= _
    vbCom.Item("M02_VerwijderRoutineEnVerwijder")
End Function
Achtereenvolgens:
Functie StartRest declareren
De variabele pad defineren. pad wordt gebruikt om de directorie op te slaan.
toewijzen van de directorie van het huidige werkbook aan de variable pad.
Dit werkboek opslaan onder de naam "Nieuwenaam" in het pad waar het werkboek staat.
Let op op dit moment is het nieuwe document gemaakt met de nieuwe naam. Alles met naambepaling moet hier voor staan.
Vaststellen dat StartRest waar is. (ofwel de functie is doorlopen dit wordt teruggekoppeld naar de vorige routine)
Nu vindt de code plaats om de module te verwijderen, zie de website. De msgboxen zijn overbodig en kun je weg halen.
Einde van de functie. Nu is de module verwijderd.

De tweede functie wordt aangeroepen. Door de eerste daar wordt het document nog opgeslagen.

Is dit een toelichting waar je wat aan hebt?

Groet,
Hunac.
 
Thanks Hunac voor de uitvoerige omschrijving, Sjapoo:thumb::thumb:

Ik probeer nu de code te door gronden en in mijn eigen tempate te "bouwen"
Echter krijg ik wel direct een foutmelding met bij het starten van de sub HoofdRoute in het door jou geposte bestand origineel.
Hij hangt zeg maar op ; ActiveWorkbook.Save True met de melding: compileerfout. Onjuist argument of ongeldige eigenschappentoewijzing.
 
Laatst bewerkt:
Ik krijg deze foutmelding maar niet weg:

ActiveWorkbook.Save True met de melding: compileerfout. Onjuist argument of ongeldige eigenschappentoewijzing.
 
Ik had al AS achter ActiveWorkbook.Save gezet, zodat het ActiveWorkbook.Saveas true is geworden.

het ziet ernaar uit dat dat ook werkt....:o
 
Ik krijg het maar niet voor elkaar om "module1" te verwijderen uit het bestand.
Met al een hoop hulp en aanwijzingen op dit forum ben ik wel al een heel eind opgeschoten alleen die module verwijderen wil me maar niet lukken.

Werkwijze is nu.
dokument starten dmv aanklikken .xlt bestand.
Dmv de knop kopieer data naar lev op de sheet Totaal Data word een nieuw .xlt bestand gemaakt waar voor het opslaan zoals in de code gedefineerd "module1" verwijderd moet worden.

Ik hoop dat iemand naar het document wil kijken om te zien wat er nu verkeerd zit.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan