Hej!
Det finns tyvärr inte något i ett kalkylblad som bevakar knapptryckning i Excel.
Excel reagerar på förändringar i celler, kalkylbld och så vidare.
Alternativet är då att skapa ett formulär i VBA och där bevaka till exempel händelsen key down eller key press. Detta gör du så här:
1. Gå in i VBA editorn. Högerlicka på projektets namn, välj infoga och sedan UserForm.
2. Dubbelklicka på formuläret som nu skapats så du ser dess VBA-kod.
3. Överst i fönstret för VBA kod, eller skall man kanske säga ovanför det, så finns en rullgardin med objekt och en med händelser eller metoder. Börja med att i första rullgardinen välja UserForm. Välj sedan i andra rullgardinen händelsen KeyPress.
Du får nu se en metod som börjar och slutar som metoden nedan, men som inte innehåller den mellersta raden.
4. Lägg till raden i mitten enligt nedan för att se det så kallade ascii-värdet för knappen du tryckt, ett värde som identifierar knappen.
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Call MsgBox(KeyAscii)
End Sub
5. Lägg nu till en modul för kod, om du inte redan har en. Det gör du på samma sätt som i punkt 1 ovan fast du väljer en modul.
6. Skriv metoden nedan och kör den för att se ditt formulär. Testa att trycka på olika knappar.
Public Sub test()
UserForm1.Show
End Sub
7. När du får detta att fungera kan du börja laborera med någon variabel deklarerad på klassnivå i formuläret, dvs ovanför alla metoder, som innehåller en starttid. Lägg till en if-sats som granskar värdet av KeyAscii och om det är värdet för önskad knapp så ges variabeln en starttid.
8. Fortsätt med lämplig kod för att spara, jämföra och skriva ut resultat.
Mvh
/Kihlman