• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Snel data invoeren zonder Enter

Status
Niet open voor verdere reacties.

Ajoutame

Gebruiker
Lid geworden
16 aug 2006
Berichten
20
Ik heb een vragenlijst gemaakt met circa 70 items. De antwoorden moeten onder elkaar ingevuld worden in één kolom. De mogelijke antwoorden zijn 1, 2, 3, 4, 5 (dus steeds 1 digit). Omdat die lijst vaak ingevuld moet worden wil ik dat snel kunnen doen. Daartoe wil ik dat, na invoering van het cijfer, de celaanwijzer automatisch naar de volgende cel (eronder) verspringt, dus zonder op Enter te hoeven drukken. Dit gaat een stuk gemakkelijker dan na elk antwoord op Enter te moeten drukken:D . Kan dat eenvoudig binnen Excel ingesteld worden? Of moet ik dan gaan programmeren in VB?
 
Hier is een truckje, al weet ik niet dat het heel veel voordeel gaat opleveren:

Typ alle antwoorden achter elkaar, bv. in cel B1. Begin die cel met een '.
in A1 zet je:

=WAARDE(DEEL($B$1;RIJ();1))

Voer die formule door naar beneden, zo ver als nodig. Je hebt de antwoorden nu. Dan kopiëren en Plakken Speciaal > Waarden en je bent er. (maar best naar ergens anders kopiëren zodat je de formule niet opnieuw moet maken).

Een limiet op het aantal tekens in een cel zal er wel zijn, alleen weet ik niet hoeveel die bedraagt.

Lukt het?

Wigi
 
VBA Oplossing

Zet deze code in ThisWorkbook

Private Sub Workbook_Open()

'Start macro na invoer van;

Application.OnKey "1", "DOWN1"
Application.OnKey "2", "DOWN2"
Application.OnKey "3", "DOWN3"
Application.OnKey "4", "DOWN4"
Application.OnKey "5", "DOWN5"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)

'Terugzetten naar normale stand
Application.OnKey "1"
Application.OnKey "2"
Application.OnKey "3"
Application.OnKey "4"
Application.OnKey "5"
End Sub

Werking is al volgt, je drukt op een toets (1-5) en er wordt een macro gestart.
Na het afspuiten van het werkblad moet dit wel weer gewoon werken in andere excel bladen vandaar het terug zetten.

Maak een module aan en plaats daar deze code in;

Option Explicit

Sub DOWN1()
'
ActiveCell.Value = 1
ActiveCell.Offset(1, 0).Select
End Sub

Sub DOWN2()
'
ActiveCell.Value = 2
ActiveCell.Offset(1, 0).Select
End Sub

Sub DOWN3()
'
ActiveCell.Value = 3
ActiveCell.Offset(1, 0).Select
End Sub

Sub DOWN4()
'
ActiveCell.Value = 4
ActiveCell.Offset(1, 0).Select
End Sub

Sub DOWN5()
'
ActiveCell.Value = 5
ActiveCell.Offset(1, 0).Select
End Sub
 
Withaar, klopt het dat de macro enkel werkt indien de getallen op het toetsenbord met de Shift toets gebruikt worden? En dus niet als de "gewone getallen" gebruikt worden?
 
.. Lijkt er inderdaad op dat het alleen werkt bij de nummer toetsen op het qwerty deel en niet het numerieke deel...

Hum... even verder zoeken.
 
Ik kon hier niet over vinden, dacht slim te zijn door het als volgt op te lossen;

Application.OnKey Chr(49), "DOWN1"

Maar ook dat werkt niet.... (voor het numerieke deel).

En,

Application.OnKey "{End}", "DOWN1"
Application.OnKey "{DOWN}", "DOWN2"
Application.OnKey "{PGDN}", "DOWN3"
Application.OnKey "{LEFT}", "DOWN4"
(met Num lock uit) werken wel.

Alleen heb ik voor de 5 dan nog geen oplossing... evt zou je {RIGHT} in combinatie met de '6' kunnen gebruiken voor de 5, het cijfer wordt toch door de macro geplaatst en niet door de key zelf.

Code wordt dan;

Private Sub Workbook_Open()

'Start macro na invoer van;

Application.OnKey "{End}", "DOWN1"
Application.OnKey "{DOWN}", "DOWN2"
Application.OnKey "{PGDN}", "DOWN3"
Application.OnKey "{LEFT}", "DOWN4"
Application.OnKey "{RIGHT}", "DOWN5" 'toets '6' voor de 5
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)

'Terugzetten naar normale stand
Application.OnKey "{End}"
Application.OnKey "{DOWN}"
Application.OnKey "{PGDN}"
Application.OnKey "{LEFT}"
Application.OnKey "{RIGHT}"
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan