Bestand afsluiten in Excel

Status
Niet open voor verdere reacties.

Jellie

Gebruiker
Lid geworden
12 apr 2007
Berichten
13
In Excel ben ik bezig om tussen verschillende bestanden te wisselen. Als het ene bestand opgeroepen wordt, moet het "oude" bestand afsluiten. Als ik dit in een macro zet werkt dit feilloos. Alleen wil ik dit middels userforms doen. Als ik dan deze macro-codes overneem in het userform, werkt het absoluut niet meer. Hieronder heb ik een voorbeeld neergezet. Dit heb ik geschreven in het bestand Standaard.xls. De "macro" verbergt nog wel het userform, maar schakelt niet over naar het andere bestand en sluit Standaard .xls ook niet af.

Application.ScreenUpdating = True
Application.Visible = True
UserFormSG.Hide
Workbooks("Onderhoud SEON.xls").Activate
Workbooks("Standaard.xls").Close

Wie kan mij helpen?
 
Je moet even goed nadenken over wat je doet.

Een userbox is opgenomen in een bepaald bestand. Laten we dat bestand voor het gemak even “bestand A” noemen Vanuit dat bestand kan je dus wel andere bestanden openen en sluiten (dat noemen we dan maar even "bestand B").

Probleem ontstaat zodra je bestand A wilt sluiten en B wilt openen. Bestand A bevat immers de userbox. Als je dat bestand sluit, heeft de userbox geen referentie meer, en wordt hij onbruikbaar.
Je kan dat ondervangen door de userbox op te nemen in een sort “moederbestand” dat je altijd open hebt. Je kan dan naar hartelust van alles openen en sluiten.
Een andere oplossing is de volgorde van de acties die je uitvoert. Als je bestand A wilt sluiten en bestand B wilt openen, moet je dat dus precies andersom doen. Dus eerst bestand B openen, en daarna pas bestand A sluiten.
Doe je dat niet, sluit je eerst bestand A af, en dus is de userbox (of in ieder geval de onderliggende code) weg. Bestand B zal dus dientengevolge niet geopenend kunnen worden
 
Laatst bewerkt:
Bedankt alvast voor je reactie.

Ik was al zover dat ik met een moederbestand was begonnen. Echter als ik van BESTAND2 terug wil naar BESTAND1 moet hij BESTAND2 afsluiten en doet hij dus niet in een userform. Als ik dezelfde codes opgeef in een macro doet hij het wel, maar als ik in het userform aangeef dat de macro gestart moet worden, vertikt hij het ook.
Nu heb ik al gedacht om dit op te vangen door in het moederbestand (BESTAND1) een IF..THEN voorwaarde op te nemen. Deze moet dan zien of BESTAND2 open staat en deze dan afsluiten. Alleen weet ik de VBA-codes hiervoor niet.
In totaal wil ik kunnen wisselen tussen 1 moederbestand en 3 andere bestanden.
 
Met het antwoord van madmuppet ben ik nog niets opgeschoten.
Zou iemand mij een betere suggestie kunnen verstrekken. Ik kan wel wat voorbeeld bestanden oversturen om het wat duidelijker te krijgen.

Dus, als iemand weet welke codes ik nodig heb om een sub-bestand af te sluiten en terug te gaan naar het hoofdbestand houdt ik me graag aanbevolen. In macro's werkt het wel, maar vanuit een userform krijg ik het niet werkend.

Alvast bedankt.
 
Wigi

alvast bedankt voor je aangeboden hulp.
Hier heb ik een voorbeeld bestandje meegestuurd. Het bestand Muis.xls doet dienst als moederbestand. Dus deze moet eerst geopend worden. Er opent nu een userform waarmee bestand Bord.xls wordt geopend. Door nu op de commandbutton Muis te drukken, zou het bestand Muis.xls weer zichtbaar worden en het bestand Bord.xls afsluiten. Helaas krijg ik dat nu juist niet met de commando's die ik ken.
Ik ben benieuwd naar jou oplossing.
 

Bijlagen


Dit was inderdaad dezelfde vraag van dezelfde persoon, maar in een ander forum.
Ondertussen ben ik er nog steeds niet helemaal uit. Als ik wil wisselen tussen 2 bestanden gaat het prima. Maar met meerdere bestanden loopt het vast, omdat Excel dan bestanden wil sluiten die niet geopend zijn. Als je hier een oplossing voor weet houd ik me aanbevolen.

groet.

Jellie
 
Hartelijk dank aan allen die deze vraag heeft gelezen en zijn gedachten eraan heeft gespendeerd.
Ondertussen heb ik op dat andere forum de vraag beantwoord gekregen.

Graag tot een volgende vraag.

groet,

Jellie
 
Ik heb de oplossing van het andere forum in praktijk gebracht. Helaas is dit niet de oplossing die ik bedoelde.
Even een totaal beeld:
bestand Muis.xls is een hoofdmenu. Bord.xls is een submenu bestand waarin andere bestanden opgeroepen moeten worden die dan handmatig aangepast moet worden (waardes invullen e.d.). Hierna moet Bord.xls weer in beeld komen. Daarnaast wil ik dus terug kunnen naar het hoofdmenu om een ander submenu te kunnen openen.
In principe kan ik dit ook doen door de verschillende submenu's als userform in Muis.xls te zetten. Echter als ik een ander bestand heb ingevuld en deze afsluit met kruisje, dan komt altijd het hoofdmenu in beeld i.p.v. het submenu waaruit ik het betreffende bestand had opgeroepen.
De oplossing van het andere forum heb ik in de bijlage toegevoegd.

In dit voorbeeld is Muis.xls het hoofdmenu en Bord.xls het submenu waaruit ik Vrijheid.xls wil oproepen om te veranderen.
Indien ik Bord.xls rechtstreeks oproep en van daaruit Vrijheid.xls, gaat alles goed. Als ik eerst Muis.xls laad en doorklik naar Bord.xls en dan Vrijheid.xls weet Excel niet meer wat hij moet doen en krijg ik een verzoek om te debuggen.:evil:

'Wie kan mij helpen met dit probleem?
 

Bijlagen

Beste leden.

De vraag die ik heb gesteld is nog niet opgelost, maar ik heb het via een ander forum op een andere manier opgelost, dus is deze vraag niet actueel meer.
Hartelijk dank voor jullie interesse voor mijn probleempje.
Ik zet deze vraag nu op afgehandeld, maar als er nog iemand een antwoord op deze vraag weet, houd ik mij aanbevolen

Groet,

Jellie
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan