PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelTidtagare i ExcelTidtagare i Excel
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2012-06-24 17:27
 

Hej!

Jag skulle behöva lite hjälp att skapa en tidtagare i Excel. Tanken är att den startar med ett tangenttryck (t ex mellanslag). Klockan räknar sedan upp tills en tangent (t ex en av fyra möjliga tangenter) trycks ned. Beroende på vilken tangent som tryckts ner sparas tiden på en ny rad, i en egen kolumn för varje tangent. Klockan börjar sedan om att räkna tills nästa tangent trycks ned, osv. tills man trycker på en utsedd "stopptangent" då klockan stannar. Jag skulle sedan vilja summera tiderna i respektive kolumn (dvs för respektive tangent). Någon som har tips på hur man löser detta?

Nytt inlägg
 2012-08-17 10:52
 

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


Kihlman

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelTidtagare i ExcelTidtagare i Excel

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter