4k Aufrufe
Gefragt in Tabellenkalkulation von patejoker Einsteiger_in (53 Punkte)
Guten Tag,

ich habe folgendes Problem:

Ich möcht in Excel folgendes dürchführen.

In Die Spalte A werden untereinander immer wieder bestimmt Barcodes eingelesen.
Und es wird die Antfangzeit in Spalte B eingetragen:

Das habe ich bereits hinbekommen.

Nun möchte ich aber das wenn ich den Barcode Scann er nicht nur die Anfangzeit einträgt sondern Automatisch (ohne Enter drücken) in Spalte D springt.

Dort wird dann der Name eingetragen und mit Enter bestätigt (sobald mann enter drückt soll er eine Zeile tiefer wieder in Spalte A gehen, damit ich einen erneuten Barcode einscannen kann)

Und wenn es also funktioniert das ich Scanne er mir die Zeit in Spalte B schreibt und dann zur Spalte D spring die wiederrum nach bestätigen der Enter taste auf neue Zeile Spalte A springt sollte noch folgendes Passieren.

Wenn ich nach der Eingabe einer ZEIT in Spalte C Enter drücke soll er zur Spalte F

Mein bisheriiger Code um die Zeit nach dem Scannen in Zeile B zu schreiben und Sie dann auch nicht zu veränder ist folgender:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Target.Offset(0, 1).Value = Format(Now, "hh:mm:ss")
End Sub


Nun seit Ihr gefragt ;)

Wer eine Idee oder eine Lösung hat immer her damit :)

Danke

5 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Halo Unbekannte8r),

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Target.Offset(0, 1).Value = Format(Now, "hh:mm:ss")
Target.Offset(0, 3).select
End Sub

Gruß Hajo
0 Punkte
Beantwortet von patejoker Einsteiger_in (53 Punkte)
Hallo,

leider hat dein Vorschlag nichts von all dem gemacht was ich wollte.

Deine Formel hat auch nur mein Script ausgeführt.

Gebe ich einen WErt in Spalte A bekomme ich eine "Eingefrorene" Zeit in Spalte B.

Jedoch hatte ich es ja auch schon soweit.

Den Rest meiner Aufgabe erfüllt das Script leider nicht!

Trotzdem Danke
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Unbekannte(r),

mein Code wählt die Zelle in Spalte D aus.

Gruß Hajo
0 Punkte
Beantwortet von patejoker Einsteiger_in (53 Punkte)
Hmm ok danke erst mal :)

Aber das Löst nur eines meiner Probleme :)

Ich bin dann zwar in der Spalte D müßte nun aber nach einer Eingabe (die mit Enter bestätigt wird)nach Zeile tiefer und Spalte A.

Desweiteren ist müss ich nach einer Eingabe in der Spalte C (eingabe wird mit Enter bestätigt) nach Spalte F

Und jetzt kommt der Hammer nach dem ich dann von Spalte C in Spalte F gelandet bin sollte ein Message Box aufgehen mit einem TEXT &quot;XYZ&quot; . Und auch hier sollte nach dem OK klicken der Message Box und einer Eingabe in der Zeile (die wiederrum bestätigt wird) die ausgewählte Zelle eine Zeile Tiefer und Spalte C sein!

Alles nicht so einfach,

denn wenn ich versuche 2 mal die Gleiche sache einzubauen bekomme ich immer fehler :(
0 Punkte
Beantwortet von
Hi,

Versuch mal folgendes:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then 'Wenn Änderung in Spalte1 (A)
Application.EnableEvents = False 'falls irgendwann Spalte2 etwas auslösen soll
Target.Offset(0, 1).Value = Format(Now, "hh:mm:ss") 'Schreibe ein Spalte nach rechts (B) die Zeit
Application.EnableEvents = True 'Events wieder ein
Target.Offset(0, 3).Select 'selectiere 3. Zelle nach rechts (D)
End If 'ENDE Änderung in Spalte1 (A)

If Target.Column = 4 Then 'Wenn Änderung in Spalte4 (D)
Target.Offset(1, -3).Select 'selectiere Zelle ein Zeile runter, 3Spalten links
End If 'ENDE Änderung in Spalte4 (D)

If Target.Column = 3 Then 'Wenn Änderung in Spalte3 (C)
MsgBox "XYZ", vbInformation, "Eingabe:" 'MessageBox
Target.Offset(0, 3).Select 'selectiere 3. Zelle nach rechts (F)
End If 'ENDE Änderung in Spalte3 (C)

If Target.Column = 6 Then 'Wenn Änderung in Spalte6 (F)
Target.Offset(1, -3).Select 'selectiere Zelle ein Zeile runter, 3Spalten links
End If 'ENDE Änderung in Spalte6 (F)

End Sub


bye
malSchauen
...