Avatar billede nielsbkh Nybegynder
23. oktober 2003 - 15:16 Der er 24 kommentarer og
2 løsninger

Excel - Focus problem.. Efter visning af UserForm.

Jeg har det problem i min applikation, at efter at jeg har vist en form for brugeren hvor forskellige data indtastes, retuneres focus ikke til mit excel ark. Hvis formen åbnes og derefter lukkes ved at trykke på X'et i højre hjørne retuneres focus heller ikke tilbage til mit excel ark, håber nogen kan hjælpe. På forhånd tak.
Avatar billede martin_moth Mester
23. oktober 2003 - 16:26 #1
Hvor returneres fokus så egentligt hen?
Avatar billede slo Nybegynder
24. oktober 2003 - 09:34 #2
Ligesom der findes en sub initialize til formen, findes også en sub terminate. Brug den til at aktivere det ønskede ark, når formen bliver lukket:

Private Sub UserForm_Terminate()
  ThisWorkbook.Worksheets("Ark1").Activate
End Sub
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:09 #3
Jeg ved faktisk ikke hvor focus ender henne.. Det er stadig Excel der er åbent, men det er ikke selve Excel der er aktiv, da ingen genvejstaster fungere... Dit svar slo virker heller ikke, højst sandsynligt fordi jeg mister focusen på selve Excel.
Avatar billede slo Nybegynder
24. oktober 2003 - 10:13 #4
Hvad med:
Private Sub UserForm_Terminate()
  Windows("MinWorkbook.xls").Activate
End Sub
??
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:23 #5
Hmm.. nope, det vil den heller ikke, jeg kan se at focus kommer tilbage til Excel som noget af det sidste, og så skifter den igen focus til noget andet.
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:25 #6
Det der undre mig mest er at jeg ikke kan åbne en UserForm, og så lukke den via X'et i højre hjørne uden at focus ryger på hele Excel.
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:30 #7
Er der en måde at se hvad der bfår focus??
Avatar billede martin_moth Mester
24. oktober 2003 - 10:32 #8
Kontroller lige om den overhovedet bliver kørt:

Private Sub UserForm_Terminate()
  Msgbox "Hej - subben bliver altså fyret af"
End Sub
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:36 #9
Nu fandt jeg da fejlen... Det var at jeg satte focus på et textfelt på min UserForm for at sikre mig at cursoren stod der ved åbning.. er der så nogen der har en god ide til hvordan man sikre sig at den står i et tekstfelt uden at bruge focus.
Avatar billede martin_moth Mester
24. oktober 2003 - 10:41 #10
Ja - sæt tabindex på det textfelt som det laveste tabindex blandt alle dine kontroller. Fokus sættes automatisk på den kontrol med laveste tab-index
Avatar billede slo Nybegynder
24. oktober 2003 - 10:41 #11
Hmmm... hvad med at bruge tabulatorrækkefølgen til det i stedet? (Højreklik på formen og vælg tabulatorrækkefølge)
Avatar billede martin_moth Mester
24. oktober 2003 - 10:44 #12
slo: Hmm, er det ikke det jeg skriver?
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:44 #13
Hvad skal den stå til??
Avatar billede martin_moth Mester
24. oktober 2003 - 10:45 #14
Ahh - dit svar skrevet 8 sek efter mit - du havde nok ikek læst mig ;o)
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:46 #15
Problemet opstår først anden gang formen kommer op, altså når man har tabuleret rundt i formen en gang... Og når man så får den op anden gang, så står tabulatoren til det punkt man sidst var på...
Avatar billede martin_moth Mester
24. oktober 2003 - 10:46 #16
Sæt index til et lavt tal, fx, 0 :o)

Tabindex fortæller i hvilken rækkefølge fokus skal flyttes i mellem de forskellige kontroller når man trykker på Tab :o)
Avatar billede martin_moth Mester
24. oktober 2003 - 10:47 #17
Du kan også sætte den til 1000 - så skal du bare være sikker på at de andre kontroller har en tabindex værdi større end 1000... Got it?
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 10:50 #18
Jep... jeg har fået fat i det... og det fungere fint første gang formen åbnes... men anden gang den åbner står den på den knap man skal trykke på for at hente data, altså den står på den sidste knap man har trykket på, og ikke på det laveste index når den åbnes ande gang. Det er vel så fordi man har brugt .Hide... og så husker den bare hvor den stod sidste den blev vist.
Avatar billede martin_moth Mester
24. oktober 2003 - 10:52 #19
Så kan du jo unloade den i stedet for at hide den
Avatar billede bluestrike Nybegynder
24. oktober 2003 - 11:23 #20
Hvordan får du unloade til at virke.. For den mulighed har jeg ikke... :o(
Avatar billede martin_moth Mester
24. oktober 2003 - 11:32 #21
Unload form1
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 13:11 #22
Hmm.. så får jeg en error 361 cant load or unload this form.. :-(
Avatar billede martin_moth Mester
24. oktober 2003 - 13:19 #23
Kontroller lige om den overhovedet bliver kørt:

Private Sub UserForm_Terminate()
  Msgbox "Hej - subben bliver altså fyret af"
End Sub
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 13:24 #24
Det bliver skam kørt.. da applikationen bliver brugt hver dag i en virksomhed, ville bare gerne lige optimere lidt på min focus mangel... så jeg ved kodedelen bliver kørt,men jeg får desværre den fejl ved unload og load.. :o(
Avatar billede martin_moth Mester
24. oktober 2003 - 13:27 #25
Tror ikke jeg kan hjælpe...
Avatar billede nielsbkh Nybegynder
24. oktober 2003 - 13:28 #26
Damn... :-(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester