Vaststellen wanneer Del, pijl omlaag/omlaag is ingedrukt.

Status
Niet open voor verdere reacties.

norway

Gebruiker
Lid geworden
11 mei 2007
Berichten
7
Dag iedereen,

met "onkey"-("Del"), ('Up") enz. kan je vaststellen wanneer een bepaalde toets is in gedrukt.

Kan dit op een andere manier vastgesteld worden?

dank,


Bert
 
Hallo Bert,

"onkey" zegt me niets ;)
VBA kent 3 gebeurtenissen die zijn gekoppeld aan het toetsenbord.
In volgorde van triggering zijn dat:

- KeyDown
- KeyPress
- KeyUp

Groet,

Tardis
 
Dag iedereen,

met "onkey"-("Del"), ('Up") enz. kan je vaststellen wanneer een bepaalde toets is in gedrukt.

Kan dit op een andere manier vastgesteld worden?

dank,

Bert

Waarom is OnKey niet goed?
 
Denk dat Tardis bedoelt dat OnKey niet bestaat in VBA

Maar ik dacht dat KeyDown e.d. ook niet bestond.

Volgens mij moet het een combinatie van jullie woorden zijn:

OnKeyPress


En dan heb je ook nog OnKeyDown en OnKeyUp
 
Laatst bewerkt:
Denk dat Tardis bedoelt dat OnKey niet bestaat in VBA

Maar ik dacht dat KeyDown e.d. ook niet bestond.

Volgens mij moet het een combinatie van jullie woorden zijn:

OnKeyPress

En dan heb je ook nog OnKeyDown en OnKeyUp

OnKeyPress en die 2 laatste kunnen niet overal in Excel gebruikt worden. Wel bv. in een Textbox, niet in een werkblad.

OnKey kan wel in een werkblad. Daarom mijn suggestie.

Wigi
 
Dag Kenhas, Wigi, Tardis,

Onkey bestaat inderdaad maar... er moet altijd een procedure op volgen.

Deze methode voert een opgegeven procedure uit als op een bepaalde toets of toetsencombinatie wordt gedrukt.

expressie.OnKey(Key, Procedure)
Onkey("Del","Sorteerleden") voert de procedure sorteerleden uit nadat de deletetoets is ingedrukt EN de onkey moet nadien terug op nul gezet worden dus...Onkey("Del","") anders blijft de aangeroepen procedure actief bij elke Delete toetsaanslag.


Er moet echter geen procedure volgen ik moet enkel weten wanneer de Delete toets pijl omhoog/omlaag is ingedrukt. Via Worksheet_change de ascii-code vaststellen gaat niet.
Misschien hebben jullie een andere oplossing,

Alvast allemaal bedankt voor jullie denkwerk.


Bert
.
 
Wat is dan het nut van die vaststelling dat een bepaalde toets gebruikt is?

M.a.w. wat zijn de verdere bedoelingen van de code?
 
Je kan het toch maar te weten komen door iets uit te voeren als de toets wordt ingedrukt?:confused:

Al is het maar iets op True of False zetten, dan is dat toch een procedure?

Ofwel maak ik mijn onwetendheid betreffende vba nu helemaal duidelijk ;) :D
 
hoi norway

misschien heb je hier iets aan

Code:
Sub UPaan()
    Application.OnKey "{UP}", "UPteller"
    Cells(1, 1) = 0
End Sub
Sub UPteller()
    Application.OnKey "{UP}"
    SendKeys "{UP}", True
    Cells(1, 1) = Cells(1, 1) + 1
    Application.OnKey "{UP}", "UPteller"
End Sub

eerst UPaan uitvoeren

daarna in de pijlomhoog testen in jouw sheet

groet sylvester
 
Laatst bewerkt:
Sylvester, bedankt.

Dit is echter al genoeg:

Code:
Sub UPaan()
    Application.OnKey "{UP}", "UPteller"
    Cells(1, 1) = 0
End Sub

Sub UPteller()
    Cells(1, 1) = Cells(1, 1) + 1
End Sub

't Is maar dat je er iets van opsteekt hé.

Wigi
 
hoi wigi

met deze code
Code:
Sub UPteller()
    Cells(1, 1) = Cells(1, 1) + 1
End Sub

wordt de pijl omhoog code niet uit vevoerd
en met deze
Code:
Sub UPteller()
    Application.OnKey "{UP}"
    SendKeys "{UP}", True
    Cells(1, 1) = Cells(1, 1) + 1    'raar maar hier moet een instructie staan anders kom je in een onbegrijpenlijke doorlopende lus
    Application.OnKey "{UP}", "UPteller"
End Sub

wordt de normale pijl omhoog ook uitgevoerd

groet sylvester
 
Laatst bewerkt:
Je hebt gelijk, ik was vergeten dat ook de pijl omhoog nog moest uitgevoerd worden.

Wigi
 
hoi wigi

heb je mijn opmerking in de code gelezen?

heb jij een idee hoe dat komt?

is dat een bekende bug of zo?
 
Laatst bewerkt:
Om een bug te ontdekken zal je toch met straffere kost moeten afkomen, maar ik zal het morgen eens bestuderen.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan