Openen en sluiten van bestanden

Status
Niet open voor verdere reacties.

Pieter1954

Nieuwe gebruiker
Lid geworden
24 nov 2014
Berichten
3
Ik wil b.v. van uit bestand 'bron.xls' een ander bestand b.v. 'eerste.xls' openen, hierin div bewerkingen maken en dan weer terug naar het eerste bestand.
Om te voorkomen dat ik dan een aantal bestanden open heb staan wil ik echter dat voordat ik naar het andere bestand ga het bestand 'bron.xls'gesloten word en als ik mijn bewerkingen in bestand 'eerste.xls' heb voltooid en ik weer terug wil naar bestand 'bron.xls' het bestand 'eerste.xls' word gesloten en de wijzigingen worden bewaard en het bestand 'bron.xls' weer word geopend.

Ik weet dat de vraag misschien simpel is,maar ik begin eigenlijk net met programmeren.
Wie kan mij hiermee helpen?
 
Pieter,

Als ik je dus goed begrijp wil je het bestand opslaan en sluiten op het moment dat je naar een ander bestand
gaat. Dit is mogelijk met Workbook.Deactivate in de code ThisWorkbook.
In deze procedure kun je opslaan en sluiten maar dit kan tot gevolg hebben dat je werk een stuk langer gaat
duren. Zo gauw je een ander bestand opent of je even schakelt naar bijvoorbeeld je mailbox zal het bestand
direct worden opgeslagen en gesloten waardoor je als je door wil werken het bestand eerst weet moet openen.
Ik zou er zelf niet aan beginnen.

Veel Succes.
 
Elsendoorn2134

Elzendoorn2134

Bedankt voor de tip. Ik zal even uitleggen wat de bedoeling van mijn programma is. Het is de bedoeling dat het een programma voor een postzegelverzameling word.
In deze verzameling moeten zegels opgeslagen kunnen worden van landen van de hele wereld. Ik wil dat er per land een bestand word aangemaakt aangezien er ook per land weer een aantal verschillende soorten zegels zijn.
Ik zal een aantal voorbeeld bestanden bijvoegen.
Bekijk bijlage Opstart bestand.xlsm
Bekijk bijlage Nederland.xlsm


Vanuit het “Opstart bestand” word het bestand van het land van keuze geopend bv “Nederland”.
Dan kom je in het start menu van Nederland en daar kun je dan een keuze maken welke soort zegels je wilt bewerken of inzien. Als je dan weer uit menu Nederland gaat terug naar het opstart menu word menu Nederland afgesloten en de wijzigingen kunnen wel of niet bewaard worden.
In deze 2 bestanden is het me dus na een hoop gepuzzel wel gelukt om het bestand te sluiten voordat ik weer terug ga naar het opstart bestand. Dit werkt gelukkig zoals u kunt zien. Hier mede is eigenlijk de vraag van mij opgelost.
Echter ik wil het wat mooier maken en heb in het “Opstart bestand_kopie” een Userform gemaakt. “frmPostzegelprg1" van waaruit ik de diverse bestanden aanroep.
Bekijk bijlage Opstart bestand_kopie.xlsm
Bekijk bijlage Nederland_kopie.xlsm


Nu loop ik echter tegen een tweetal nieuwe problemen op:
1. Ik kan geen gegevens invoeren in b.v blad “Frankeerzegels” dit kon via het bestand “Opstart bestand” in bestand “Nederland” wel. Heeft dit misschien te maken met hoe via een Userform een ander bestand moet worden geopend? Tevens kom ik als ik vanuit bestand Nederland terug ga naar het Hoofdmenu in blad 1 van het Opstart bestand_kopie terecht in plaats van weer in het frmPostzegelprg1
2. Kan ik via het ene Userform een Userform in het andere bestand aanroepen. Dit heb ik geprobeerd maar als ik dan in “Nederland_kopie” een userform aanmaak dan kan ik vanuit dat userform niets aanroepen, als ik dan bv een cmd button aanmaak om naar het blad “Frankeerzegels” dan word alleen het userform uitgevoerd en dit blijft dan ook gewoon op het scherm staan. Dit. kunt u zien als u het useform opvraagtr en dit uitvoerd.



Kunt u me hiermee helpen aub, bij voorbaat dank
 
Pieter1954,

Waarom je bestanden niet gewoon open laat staan is mij nog steeds een raadsel, maakt alles veel te gecompliceerd,
maar goed:

Een userform blijft op de voorgrond staan, ook als je een ander bestand opent of bijvoorbeeld van sheet wisselt.
De truc is dus om het userform te sluiten als je het niet nodig hebt (met Unload Me)

Dan wordt de code voor het klikken van de "Nederland" knop :
Code:
Public Sub cmdNederland_Click()
    'Deze button opent het menu van de Nederlandse verzameling
    Workbooks.Open Filename:=ActiveWorkbook.Path & "\Nederland.xlsm"
    Sheets("Start").Activate
    Unload Me
End Sub

Dan ontstaat de vraag hoe je het formulier dan weer tevoorschijn tovert op het moment dat je het wel nodig
hebt. Dit is ook niet zo moeilijk, in het bestand "Opstart bestand" op sheet 2 in het codevenster de volgende code op
Code:
Private Sub Worksheet_Activate()
    frmPostzegelprg1.Show   'Opent Formulier bij activeren van dit sheet
End Sub

Zodra het werkblad geactiveerd wordt (bijvoorbeeld omdat je er na het sluiten van Nederland in terug komt) wordt het
formulier dan weer geopend.

Veel Succes.
 
Elsendoorn2134

Bedankt voor uw bericht, op de eerste plaats de reden dat ik de bestanden wil sluiten is dat als je echt met de verzameling aan de gang gaat het goed kan zijn dat je op een avond misschien wel een 50 tal landen wil inzien c.q gegevens in die landen wilt veranderen. Dan zouden er dus 50 bestanden openstaan en dat lijkt mij niet goed. Misschien denk ik daar te moeilijk over. Ik wilde je dit toch even uitleggen, misschien begrijpt u nu waarom ik de bestanden dan wil sluiten. Gaarne uw reactie hierop.

Verder heb ik de code's uitgeprobeerd en ze werken goed maar nu had u in de eerste code gebruikt het bestand "Opstart bestand_kopie", hier vandaan word dan aangeroepen het bestand "Nederland", terwijl van uit dit bestand volgens mijn voorbeelden het bestand "Nederland_kopie"' had moeten zijn.

Ik heb dit geprobeerd maar dan krijg ik toch niet wat ik wil, namelijk dan blijft het frmPostzegelprg1 gewoon op het scherm staan.
Zou u hier ook nog eens naar willen kijken en ik had in mijn vorige bericht onderaan nog een aantal problemen opgesomt, zou u me hierbij ook uw hulp kunnen aanbieden.

Bij voorbaat hartelijk dank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan