Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten Scannen nur in ein bestimmtes Tabellenblatt

Daten Scannen nur in ein bestimmtes Tabellenblatt
14.08.2018 09:19:28
Huuuh
Hallo,
mein Problem ist das folgende: Ich habe eine Excel Datei mit mehreren Tabellenblättern. In das "Datenblatt" sollen Artikelnummern mit einem Handscanner eingescannt werden. Das funktioniert auch alles soweit.
Nun möchte ich das Ganze aber soweit sperren, dass, wenn eines der anderen Tabellenblätter geöffnet ist und der Scanner verwendet wird, die gescannten Daten wirklich nur in das "Datenblatt" eingetragen werden. Excel soll beim Scanvorgang immer erst in das Tabellenblatt "Datenblatt" wechseln.
Hat dazu jemand eine Lösung?
Vielen Dank :)

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Dazu gibt es keine Lösung...
14.08.2018 09:24:17
EtoPHG
Warum?
Weil ein Scanner Input sich wie eine manuelle Tastatureingabe verhält und VBA programmatisch kann nicht festgestellt werden, von welchem Eingabegerät der Input stammt!
Gruess Hansueli
Es sei denn, du kannst den Scanner ausschalten...
14.08.2018 09:27:11
EtoPHG
und zwar über ein API-Interface oder eine Befehlszeile, die du dem Scanner-Interface übermittelst.
Dazu müsste man die Technischen Spezifikation und Programmierschnittstellen des Scanner kennen.
Damit könntest du den Scanner nur dann aktivieren, wenn das "Datenblatt" aktiv wird, bzw. ausschalten, wenn es deaktiviert wird.
Gruess Hansueli
AW: Daten Scannen nur in ein bestimmtes Tabellenblatt
14.08.2018 09:39:48
Daniel
Hi
eventuell hilft dir folgender Workaround:
richte für alle Blätter das Change-Event ein (wenn du mehrere Blätter in der Datei hast, das im Modul "DieseArbeitsmappe", das gilt dann für alle Blätter)
in diesem Change-Event prüfst du den Inhalt der Eingabezelle. Wenn dieser einer Scannereingabe entspricht (Länge des Strings, nur Ziffern), kopierst du diesen Wert und fügst ihn im richtigen Tabellenblatt ein.
Gruß Daniel
Anzeige
Wie kommst du auf Nur Ziffern? (owT)
14.08.2018 09:48:59
EtoPHG

ist nur ein Beispiel, woran man eine Scanner
14.08.2018 10:09:09
Daniel
Eingabe identifizieren könnte.
normalerweise scannt man Strichcodes und die bestehen aus Ziffern.
natürlich muss man das an die tatsächlich vorhandenen Daten anpassen.
Die Artikelnummern werden einen bestimmten Aufbau haben und daran kann man sie erkennen.
Gruß Daniel
AW: Daten Scannen nur in ein bestimmtes Tabellenblatt
14.08.2018 10:25:34
Huuuh
Das klingt schonmal nicht schlecht. Kannst du mir bei dem Change-Event weiter helfen? Ich habe versucht mir etwas zusammen zu kopieren, was leider nicht so erfolgreich war. Meine Artikelnummer hat immer 15 Zeichen. Darüber könnte man selektieren. Wenn in einer Zelle 15 zeichen eingetragen werden, soll die Zeichenkette ausgeschnitten und in die Mappe "Datenblatt" kopiert werden.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells = 1 Then
ThisCells = Target.Cells
If Target.Len = 15 Then
Target.Cells.Cut
Sheets("Datenblatt").Select
ActiveSheet.Paste
End If
End If
End Sub

Anzeige
AW: Daten Scannen nur in ein bestimmtes Tabellenblatt
14.08.2018 10:44:41
Daniel
HI
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
dim Artikelnummer as variant
if Target.CountLarge = 1 then
If Len(Target.Value) = 15 Then
'--- eingabe Speichern
Artikelnummer = Target.Value
'--- Eingabe rückgängig machen
Application.EnableEvent = False
Application.Undo
Application.enableEvents = True
'--- eingabe in Datenblatt in die nächste freie Zelle in Spalte A einfügen
Sheets("Datenblatt").Cells(Row.count, 1).End(xlup).Offset(1, 0).Value = Artikelnummer
End if
end if
End sub
zum Rückgängigmachen der Eingabe würde ich UNDO verwenden.
Es könnte ja sein, dass der Scanvorgang einen bestehenden Zellwert überschrieben hat.
der würde mit Application.Undo wiederhergestellt werden.
wird während des Scannvorangs an diesem Rechner weiter gearbeitet oder wie kann es sein, dass ein anderes Tabellenblatt aktiv ist?
Gruß Daniel
Anzeige
AW: Daten Scannen nur in ein bestimmtes Tabellenblatt
14.08.2018 11:20:44
Huuuh
Danke Daniel,
Ich habe das unter Diese Arbeitsmappe eingebunden. Aber mein Scanner schreibt munter weiter in alle möglichen Zellen.
Kann es vielleicht noch daran liegen, dass die Artikelnummer mit einem punkt"." beginnt? Vielleicht kann man auch danach selektieren. Die "Nummern" beginnen immer mit ".MKW".
Ein anderes Tabellenblatt kann aktiv sein, weil die gescannten Daten in den anderen Blättern ausgewertet werden. Wenn jemand die Auswertung anschaut müsste er jedes mal wieder auf das "Datenblatt" zurückklicken. Da das zu oft vergessen wird und der Scanner jedesmal meine Auswertung überschreibt, wollte ich das durch einen Makro unterbinden.
Grüße
Lisa
Anzeige
Nicht DieseArbeitsmappe, sondern entspr.Blatt! owT
14.08.2018 11:24:38
EtoPHG

AW: Daten Scannen nur in ein bestimmtes Tabellenblatt
14.08.2018 11:31:52
Daniel
Hi
dann wäre die Abfrage:
If Left(Target.Value, 4) = ".MKW"

oder auch
If Target.Value like ".MKW*"

wie gesagt, du musst wissen, wie man eine Artikelnummer erkennt und die entsprechende(n) Abfrage(n) in den Code einbauen.
Ich kenne deine Artikelnummern ja nicht.
kannn es auch sein, dass jemand auf dem anderen Blatt eine Zelle bearbeitet, während jemand den Scanner bedient und dann der gescannte Text in den Zelltext eingefügt wird?
Gruß Daniel
AW: Daten Scannen nur in ein bestimmtes Tabellenblatt
14.08.2018 14:01:01
Huuuh
Ach, ich muss schon richtig lesen. Füge ich den Code in die einzelnen Blätter ein funktioniert es fast. Allerdings meckert es etwas über die Applications Enable events und Undo und spuckt einen Laufzeitfehler aus. Laufzeitfehler 438: Objekt unterstützt diese Eigenschaft oder Methode nicht.
Es sollte normalerweise nicht vorkommen, dass gleichzeitig etwas geschrieben wird und gescannt wird. Diesen Fall möchte ich zumindest nicht betrachten. Mir reicht es, wenn erstmal das eine funktioniert ;)
Anzeige
AW: Application.enableEvents
14.08.2018 14:05:42
Daniel
das Application ohne Plurals
Gruß Daniel
AW: Application.enableEvents
14.08.2018 14:22:35
Huuuh
Ja, ist ohne, ich habe deinen Quellcode kopiert
Gruß Lisa
AW: Application.enableEvents
14.08.2018 14:35:31
Daniel
ich hab ihn halt direkt ins Forum geschrieben ohne zu testen.
da gibt's halt keine VBA-Spezifische Rechtschreibprüfung.
Lesen, verstehen und Code selber schreiben ist daher immer die besser Methode, um etwas aus dem Internet zu übernehmen.
Gruß Daniel
AW: Application.enableEvents
14.08.2018 14:50:32
Huuuh
Alles klar, Du hast mir schon viel weiter geholfen, danke. Ich probiere noch ein bisschen daran rum.

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige