Avatar billede mrkr Juniormester
11. marts 2011 - 20:29 Der er 4 kommentarer og
1 løsning

Hop automatisk til næste celle når der er indtastet 2 tegn i et felt

Kan man ved hjælp af vba få excel til at hoppe videre til næste felt når der feks er indtastet 2 cifre i et felt.

Så man slipper for at trykke enter eller tab efter man er færdig med at indtaste i det enkelte felt.

Jeg havde tænkt at man skulle indsætte noget kode i det enkelte ark ala...

Private Sub Worksheet_Change(ByVal Target As Range)

Men ved ikke helt om det kan lade sig gøre.

Er der nogle af jer eksperter der kan klare det?
11. marts 2011 - 21:29 #1
Worksheet_Change reagerer først NÅR du trykker på TAB eller ENTER.

En celle har umiddelbart ikke en KeyPress event, som f.eks. et tekstfelt på en userform har, og det hænger samme med, at kode IKKE kan afvikles når en celle er i EditMode/redigeringstilstand.

Du kan måske ikke lide svaret, men det er altså:
NEJ, det kan man ikke.
Avatar billede mrkr Juniormester
11. marts 2011 - 21:44 #2
Øv...

Leder desperart efter en lettere måde at indtaste datoer i celler.

Når nu det ikke kan lade sig gøre, vil jeg så høre om man så kan lave en lille kode med "Worksheet_Change" der automatisk sætter bindestregerne til datoformatet.

Her tænker jeg på at hvis man skriver

31012011 eller 310111, så laver den teksten om til en dato 31-01-2011?

cellens format skal være "dato" har koden er kørt, så man kan sortere på dato efterfølgende.
11. marts 2011 - 21:52 #3
ja øjeblik
11. marts 2011 - 22:01 #4
Jeg synes den med 6 tegn er uheldig, da et to-cifret altid får 20 sat foran, den del kan nok løses smartere, hvis hoved lige bliver lagt i det, men det gør det ikke i aften...


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
        If Not IsNumeric(Target.Value) Then Exit Sub
        Application.EnableEvents = False
        Select Case Len(Target.Value)
            Case 6
                Target.Value = Left(Target.Value, 2) & "-" & Mid(Target.Value, 3, 2) & "-20" & Right(Target.Value, 2)
            Case 8
                Target.Value = Left(Target.Value, 2) & "-" & Mid(Target.Value, 3, 2) & "-" & Right(Target.Value, 4)
        End Select
        Application.EnableEvents = True
    End If
End Sub
Avatar billede mrkr Juniormester
11. marts 2011 - 22:34 #5
Takker.
Nu hvor indtastningen ikke kommer til at foregå helt som jeg forventede, har jeg et yderligere ønske til indtastningen.

Det laver jeg et nyt spørgsmål.

Så håber jeg det kan løses :-)

Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester