Avatar billede Arnebirger Nybegynder
13. november 2013 - 21:52 Der er 12 kommentarer og
1 løsning

Makro der skifter til cellen til højre.

Hej.
Jeg har uden held søgt efter en makro eller andet der kan hjælpe mig med min udfordring.

Jeg bruger en scanner til stregkoder. Scanner aktiverer automatisk "Enter" efter hvert scan. Jeg skal undgå en løsning hvor selve tastaturet skal bruges  når jeg er i gang da det ikke vil lette arbejdet.

Behovet er at jeg, når jeg er i en celle i kolonne C5-C25, og taster "Enter" (altså scanner min stregkode), skal bringes til en celle i den samme række i kolonne D.
Når jeg er i kolonne D skal jeg bare flytte en celle ned for hvert scan, men det gør den jo allerede som standard så det er ikke et problem.

På forhånd tak.
Mvh. Arnebirger.
Avatar billede kabbak Professor
13. november 2013 - 22:57 #1
sæt denne i arkets modul

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then Target.Offset(0, 1).Select
'If Target.Column = 4 Then Target.Offset(1, -1).Select' tilbage til c
End Sub

nb.  skal du ikke tilbage til C kolonnen efter D, så fjern' foran linjen
Avatar billede lokesa Juniormester
14. november 2013 - 12:20 #2
Sub Next_cell
    ActiveCell.Offset(0, 1).Range("A1").Select
End Sub

sæt linjen ind efter din "Enter / Scan"
Avatar billede Arnebirger Nybegynder
14. november 2013 - 23:06 #3
Tak for svarene, men jeg kan desværre ikke få det til at virke...
Jeg må hellere tilføje at det er i Excel 2003 det skal bruge, jeg ved ikke om det gør en forskel.

kabbak; Din makro kan jeg simpelthen ikke få til at virke hos mig... Jeg er grøn i det her, og laver måske en fejl jeg ikke ved af.

lokesa; Jeg kan få det til at virke hvis jeg går ind og afspiller makroen direkte. Jeg tror ikke jeg forstår hvad du mener med at sætte linjen ind efter mit "Enter/Scan"
Tanken er at makroen kun skal gøre det ønskede når jeg befinder mig i en af cellerne fra C5 til C25. Hvordan fortæller jeg den det samtidig?

I må meget undskylde hvis jeg er for blank, men jeg håber det er meningen med denne side ;)
Jeg er meget taknemlig for jeres hjælp.

Mvh. Arnebirger
Avatar billede kabbak Professor
14. november 2013 - 23:13 #4
Husk at koden skal ind i arkets modul, ikke andre steder.

højreklik på arkfanen og vælg vis progrankode, der skal den ind.
Avatar billede Arnebirger Nybegynder
19. november 2013 - 10:33 #5
Kabbak.
Det ser faktisk ud til at jeg får det til at virke nu ;)
Jeg vil gerne give dig point, men tillader mig lige et tillægs-spørgsmål...

Jeg har nu lavet en sregkode med ordet NY.

Kan jeg tilføje i din kode at når ordet NY scannes i kolonne D, så flyttes den aktive celle en plads til venstre, altså til kolonne C, samtidig slettes ordet NY så det ikke kan ses.

Jeg kan evt oprette dette spørgsmål i en ny tråd hvis det er bedre?

Mvh. Arnebirger
Avatar billede kabbak Professor
19. november 2013 - 16:02 #6
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then Target.Offset(0, 1).Select
If Target.Column = 4 Then
if target ="NY" then
Target = ""
Target.Offset(0, -1).Select' tilbage til c
else
Target.Offset(1, -1).Select' tilbage til c
End Sub
Avatar billede Arnebirger Nybegynder
19. november 2013 - 16:40 #7
Hmm..
Nu har jeg sat den ind, men får så følgende fejlmeddelelse når jeg scanner noget:

Compile error:
Block If without End If
Avatar billede kabbak Professor
19. november 2013 - 17:43 #8
min fejl ;-))

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then Target.Offset(0, 1).Select
If Target.Column = 4 Then
if target ="NY" then
Target = ""
Target.Offset(0, -1).Select' tilbage til c
else
Target.Offset(1, -1).Select' tilbage til c
end if
End Sub
Avatar billede Arnebirger Nybegynder
19. november 2013 - 18:00 #9
Jeg får samme fejlkode igen?
Avatar billede kabbak Professor
19. november 2013 - 18:15 #10
prøver igen

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then Target.Offset(0, 1).Select
    If Target.Column = 4 Then
        If Target = "NY" Then
            Target = ""
            Target.Offset(0, -1).Select ' tilbage til c
      Else
            Target.Offset(1, -1).Select ' tilbage til c
        End If
    End If
End Sub
Avatar billede Arnebirger Nybegynder
20. november 2013 - 14:38 #11
Sådan ja.

Lige først drillede den lidt, men så kiggede jeg lidt, og tillod mig at fjerne linien:

Else
            Target.Offset(1, -1).Select ' tilbage til c

Og så virkede det perfekt for mig.

Mange tak for hjælpen.
Arnebirger
Avatar billede Arnebirger Nybegynder
20. november 2013 - 14:39 #12
Point til kabbak.
Avatar billede kabbak Professor
20. november 2013 - 16:20 #13
tak
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

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