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

excel formulier focus

Status
Niet open voor verdere reacties.

tcgjohn

Gebruiker
Lid geworden
1 mrt 2007
Berichten
35
Ik heb een formulier in vba excel gemaakt. Vanaf dit formulier wil ik een ander bestand openen via knoppen. Maar dan moet het geopende excel bestand over het formulier verschijnen. Als je dit bestand weer sluit moet moet het formulier (forms) weer zichtbaar zijn.
Het formulier is een soort startformulier.
In Workbook_open staat al: userform.show

Alvast bedankt.
JS
 
Hoe staat de eigenschap ShowModal van de userform?

Anders moet je eens de 2 bestandjes bijhangen, enkel de essentie, niet meer.

Wigi
 
Formulier openen na openen andere excel bestand

Ik heb twee bestanden toegevoegd. 1 = inschrijving, 2= 13 juni.
Als ik inschrijving open en klik op datumknop 13 juni wordt een bestand 13 juni geopend. Het formulier moet nu naar de achtergrond verdwijnen en als ik 13 juni sluit, moet het formulier weer geopend worden. Met showmodal lukt dit niet....
 

Bijlagen

tcgjohn.

Dit kan redelijk eenvoudig.
Allereerst moet je in ThisWorkbook bij Private sub WindowsActivate de code Userform1.show geven.

Bij de commandbuttons op het userform geef je, nadat je de code geeft om 13 juni.xls op te roepen, de code: Userform1.hide.
Na het invullen e.d. kun je terug naar Inschrijving.xls door 13 juni.xls af te sluiten. Bestand 13 juni.xls wordt gesloten en Inschrijving.xls wordt weer geactiveerd en komt het userform weer in beeld.
Het commando bij ThisWorkbook geeft tevens, als je het bestand opent, dat het userform wordt opgeroepen. De commandbutton op blad1 wordt dan ook overbodig.

Ik heb de bestanden aangepast en meegestuurd.

groet,

Jellie
 

Bijlagen

Laatst bewerkt:
heropenen formulier

Dag Jellie,

Ik heb jouw voorstel verwerkt en het werkt goed met een uitzondering.
Als ik in het bestand op het kruisje rechtsboven klik, kom ik inderdaad terug in het formulier.
Echter als ik op een knop (voor sluiten en opslaan) klik, kom ik niet terug in het formulier maar in een werkblad (waar het form in vba staat).
Ik gebruik hier:
Private Sub KnpSluit_Click()

If MsgBox("Je gaat terug naar het startformulier", vbYesNo + vbQuestion) = vbYes _
Then ActiveWorkbook.Close (True)
End Sub

Met deze code ga ik dus niet terug naar het formulier, maar naar een werkblad. Wat moet ik hier aanpassen?

groet,
John
 
tcgjohn

Ik ben geen expert op VBA-gebied. Ik heb ook al vanalles geprobeerd om middels een macro af te sluiten en terug te komen en het userform. Totnutoe zijn alle pogingen op niks uitgelopen. Ik zou op dit moment ook niet weten hoe dit wel op te vangen is.
Ik dingen geprobeerd met ActiveWorkbook.Close en ActiveWindow.Close. Dit mocht niet baten.
Het enige wat wel werkt is het kruisje. Echter als je hiermee gaat spelen (lees macro opnemen) en je gebruikt het kruisje, dan geeft VBA de code ActiveWindow. Close.
Ik denk dat er nog een code achteraan moet komen om het userform te activeren. Ik heb zoiets al eens vaker gehad. VBA commando in macro werkte wel. Zelfde commando in userform werkte niet.

Misschien is er één van de experts op deze site die de oplossing weet!!.

Succes ermee.

Groet,

Jellie
 
Als je met verschillende bestanden werkt binnen VBA is het aangewezen dat je zo correct mogelijk aangeeft waar de objecten (forms, sheets, ...) zich bevinden.
Dit kan je bekomen door in je code de naam van het workbook mee te geven voor de naam van de sheet of het formulier. Maw je slaagt de namen van de workbooks op in een variabele (of array of in weet niet waar) en gebruikt die voor de objecten.

vb.

Code:
Dim wbBron, wbNieuweFile As Workbook

Set wbBron = ThisWorkbook 'dit is het huidig bestand dat reeds open is
Set wbNieuweFile = Workbooks.Open("Filenaam") 

'enkele voorbeeldcommando's
wbBron.Form1.Activate
wbNieuweFile.vbSheetTest.Range("A1").Select
wbNieuweFile.Sheets("Test").Range("A1").Select

Op die manier weet Excel exacter welk object hij moet aanspreken. Misschien dat door gebruik te maken van deze conctructie de problemen opgelost zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan