Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

VBA EXCEL toetsen validatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

wie kan mij helpen?
Heb een excel file gemaakt waarin dagelijks de uren van het personeel bijgehouden worden. Het probleem is dat ik de tijdsregistratie d.m.v. de toetsen combinatie "ctrl + :" wil laten gebeuren. De combinatie geeft dan de huidige tijd weer in de cel. Nu wil ik een tekstbox laten verschijnen met een foutmelding indien er een andere input gegeven wordt dan "ctrl + :". de gebruiker zou dus niet de tijd zelf mogen ingeven (bv 10:00). Als ik gegevens validatie gebruik voor de cel dan kan ik zowel de toetsen combinatie als de tijd zelf ingeven gebruiken en dat zou niet mogen.
Ik ben zelf een leek en heb me al te pletter gezocht, maar vind geen oplossing
Ik gebruik office 2011 voor mac
Grtz Alain

  • reshi
  • Registratie: April 2009
  • Laatst online: 18-11 21:26
Met Google moet je iets kunnen vinden.

Zo vond ik bijvoorbeeld: http://www.cpearson.com/excel/TextBox.htm

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tja, ik vraag me toch ten zeerste af of je dit soort functies wel in excel wilt zetten. Ik gok zomaar dat iemand er in 5 minuten voorbij is.
Maar als je het echt zou willen zou je iets kunnen doen met vba die een cel ontgrendelt, daar een data-validatie aanhangt die zegt dat de input enkel de huidige tijd mag zijn en onchange vergrendel je de cel weer en hang je de data-validatie aan de volgende cel.

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

Als je de user niet de mogelijkheid wil geven om de tijd in te geven, dan vraag ik me af waarom je zou willen dat hij een bepaalde toetsencombinatie indrukt om de tijd op te halen. Kan je dat niet doen op een sheet.Activate, of bij een onSend?
Desnoods op een cell.onClick of voorzie je een button waar ze op kunnen klikken.
De CTRL+":" lijkt me sowieso een omslachtige manier om iets gedaan te krijgen.

En tenslotte een antwoord op je vraag:
[Without using key events]
If (Windows.Forms.Control.ModifierKeys And Keys.Control) <> 0 Then
If (Windows.Forms.Control.ModifierKeys And Keys.Shift) <> 0 Then
If (Windows.Forms.Control.ModifierKeys And Keys.Alt) <> 0 Then

or
If (My.Computer.Keyboard.AltKeyDown) Then
If (My.Computer.Keyboard.CtrlKeyDown) Then
If (My.Computer.Keyboard.ShiftKeyDown) Then

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 19-11 15:57

Armageddon_2k

Trotse eigenaar: Yamaha R6

Ik zou de worksheet beveiligen.
Je kan een cell blokkeren, op die manier kan een gebruiker geen input geven.
Zodra je je macro draait unprotect je je sheet, vult de waarde in, en protect daarna je sheet weer.

Het is namelijk onzinnig om je macro dit te laten afvangen.
Stel ik start de sheet en schakel marco's uit. Dan is je beveiliging al stuk.

Oja, en vergeet niet je VBA project te beveiligen met een wachtwoord.

[ Voor 9% gewijzigd door Armageddon_2k op 23-09-2013 11:00 ]