Avatar billede p_h_g Nybegynder
29. september 2006 - 11:20 Der er 6 kommentarer og
1 løsning

sætte genvejstast til en knap i et vba vindue

Et lille hurtigt spørsmål hvordan sætter man en tast på tastaturet til at aktivere en knap i det vba vindue man har åben?
f.eks. når man trykker Enter svare det til et klik på knappen "OK" og Esc svare til et klik på "Anuller" osv.

OK->
Private Sub CommandButton1_Click()
Range("C2").Value = TxtA.Value
frmret.Hide
End Sub

Anuller->
Private Sub CommandButton2_Click()
frmret.Hide
End Sub
Avatar billede xelor Nybegynder
29. september 2006 - 12:42 #1
DU skal angive nogle egenskaber for knapperne :

CommandButton1.Default=True;

CommandButton2.Cancel=True;

Så vil disse 2 automatisk reagere på hhv. Enter og ESC knap.
Avatar billede xelor Nybegynder
29. september 2006 - 12:47 #2
Hvis du vil bruge andre taster end Enter og ESC, så skal du på knappen's property "Accelerator" angive, hvilken tast denne knap skal respondere på....det skal være et bogstav, der indgår i Knappens Caption
Avatar billede p_h_g Nybegynder
30. september 2006 - 17:37 #3
Tak!
Det med Accelerator knapperne er super!
Ang. "CommandButton1.Default=True" det virker fint, men hvor skal koden placeres henne hvis der er flere faneblade med knapper på som skal bruge samme "Enter":

"Fane 1"
OK->
Private Sub CommandButton1_Click()
Range("C2").Value = TxtA.Value
frmret.Hide
End Sub

Anuller->
Private Sub CommandButton2_Click()
frmret.Hide
End Sub

"Fane 2"
OK->
Private Sub CommandButton3_Click()
Range("C2").Value = TxtA.Value
frmret.Hide
End Sub

Anuller->
Private Sub CommandButton4_Click()
frmret.Hide
End Sub
Avatar billede xelor Nybegynder
30. september 2006 - 21:35 #4
Ja, den var straks lidt sværere....
Det kræver en del kode at skifte Enter/ESC knappens funktion.

Jeg prøver lige at finde en løsning....
Avatar billede xelor Nybegynder
30. september 2006 - 21:47 #5
OK, Nu har jeg en løsning på dit problem

på dine OK/Cancel knapper skal du sætte en oplysning i controllen TAG-property. Tage'en skal værer HHV ENTER og ESC.

Indsæt derefter denne kode på din Userform. Koden reagerer hvergang din multipage skifter side, og den gør det at den control, der har ENTER ståend i taggen får sat sin Default Property til TRUE. TIlsvarende får den control der har ESC stående i Taggen sat sin Cancel Property til True.

Private Sub MultiPage1_Change()
Dim ctrl As Control

    For Each ctrl In MultiPage1.Pages(MultiPage1.Value).Controls
   
        If ctrl.Tag = "ENTER" Then ctrl.Default = True
       
        If ctrl.Tag = "ESC" Then ctrl.Cancel = True
   
    Next


End Sub
Avatar billede xelor Nybegynder
30. september 2006 - 21:48 #6
Jeg håber at det kan bruges:-) Ellers kan jeg lige sende mit Test regneark, hvor det fungerer uden problemer
Avatar billede p_h_g Nybegynder
01. oktober 2006 - 01:06 #7
Takker det virker fint
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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