Microsoft Excel

Herbers Excel/VBA-Archiv

Scancode Ton+Hinweis bei Übereinstimmung

Betrifft: Scancode Ton+Hinweis bei Übereinstimmung von: Scanner
Geschrieben am: 13.08.2020 18:17:47

Hallo zusammen,


ich melde mich mit einem Anliegen, dass so sonst nicht für mich im Netz zu finden ist:


Ich habe eine Tabelle mit einer Liste an Werten in Spalte C.

Mitarbeiter sollen nun tausende von Barcodes in Spalte A einscannen.

Wenn ein in A gescannter Wert in C auftaucht, wird in Spalte B die Zeile angegeben, wo dieser Wert in C steht und die Zelle in B färbt sich rot. Zelle B1 zeigt zudem die Anzahl von sowohl in A als auch C vorhandenen Werten an. So weit so einfach.


Aufgrund der Masse von zu scannenden Codes und dem Wunsch, das Fehlerpotential des "Übersehens" weiter zu reduzieren, hätte ich gerne die Ausgabe eines Tons und/oder eines Pop-up Hinweises, wenn in B angezeigt wird, dass ein Wert aus A auch in C vorhanden ist.

Dies habe ich mit diversen VBA Lösungen aus dem Internet probiert, jedoch scheiterte es zumeist daran, dass der Wert in B sich aus einer Formel ergibt und somit Worksheet_Change nicht funktioniert. Auch mithilfe von Calculate habe ich kaum was annäherndes gefunden, zumal dort auf jedwede Formeländerung reagiert wird.

Zuletzt hatte ich dann eine Lösung bzgl. eines Sounds, die beim händischen Eingeben in Spalte A funktionierte, beim scannen mit einem Handscanner aber dauerhaft lostönte, obwohl keine Übereinstimmung zwischen A und C vorlag.


Daher bitte ich nun hier um Rat. Ich habe ein unheimlich schlechtes Gewissen aber hoffe, dass jemand mir helfen kann.

Allerliebsten Dank dafür vorab.

Rückfragen zur Präzisierung gerne stellen.


Danke und viele Grüße

Scanner

Betrifft: AW: Scancode Ton+Hinweis bei Übereinstimmung
von: Nepumuk
Geschrieben am: 13.08.2020 18:35:01

Hallo,

wenn die Formel in Spalte B so aussieht:

=WENN(ZÄHLENWENN(C:C;A3)>0;ZÄHLENWENN(C:C;A3);"")

Dann so:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Calculate
        If Cells(Target.Row, 2).Value <> vbNullString Then
            Call MsgBox("Achtung,Wert in Spalte C vorhanden.", vbExclamation, "Hinweis")
        End If
    End If
End Sub

Gruß
Nepumuk

Betrifft: AW: Scancode Ton+Hinweis bei Übereinstimmung
von: Scanner
Geschrieben am: 14.08.2020 08:05:58

Guten Morgen Nepumuk und vielen Dank für das schnelle Feedback.

Die Formel in B lautet =WENN(ISTFEHLER(VERGLEICH(A2;C:C;0));"";VERGLEICH(A2;C:C;0)), damit B mir die Zeile zeigt, in der dieser Wert in C auftaucht.
Mit einer leichten Änderung funktioniert dein Input daher grundsätzlich schon gut. Danke dafür!
Jedoch kann der Hinweis durch Scannen eines neuen bzw. des nächsten Barcodes ausgeblendet werden, wobei dieser gescannte Code dann natürlich nicht in A auftaucht. Dies ist dann ebenfalls nicht perfekt, wenn ich den Hinweis einfach wegscannen kann und die Daten am Ende dadurch gar unvollständig sind. Gibt es hier die Möglichkeit, den Hinweis nur durch eine bestimmte Passworteingabe o.ä. entfernen zu können, bevor regulär weiter gemacht werden kann?

Gruß
Scanner

Betrifft: AW: Scancode Ton+Hinweis bei Übereinstimmung
von: Nepumuk
Geschrieben am: 14.08.2020 08:10:26

Hallo,

benutze dazu ein UserForm. Einen Ton kannst du ganz einfach mit der Beep - Methode erzeugen.

Gruß
Nepumuk

Betrifft: AW: Scancode Ton+Hinweis bei Übereinstimmung
von: Scanner
Geschrieben am: 14.08.2020 11:30:17

Hi Nepumuk,

ich habe mir aus deiner Vorlage etwas funktionierendes basteln können.
Vielen Dank für die Hilfe, alles Gute und ggf. bis zum nächsten Mal.

Gruß
Scanner

Betrifft: AW: Change-Event
von: Fennek
Geschrieben am: 13.08.2020 18:36:41

Hallo,

löst das Einscannen (normalerweise wie eine Tastatureingabe) das Change_Event() aus? (nicht die Formel, die die Farbe ändert)

mfg

Betrifft: AW: Change-Event
von: Scanner
Geschrieben am: 14.08.2020 08:12:54

Hi Fennek und danke für deine Nachfrage,

leider bin ich so ungebildet, dass ich mir nicht sicher bin, ob ich deine Frage richtig verstehe.
Das Scannen in A3 bewirkt bei Übereinstimmung eine Veränderung in B3, was wiederum eine Veränderung in B1 verursacht und der Ton sollte bei Veränderungen in B1 ertönen. Mit Tastatureingabe in A geht es vernünftig, beim Scanner piept es wie gesagt jedes Mal los, ungeachtet dessen, welcher Wert eingetragen wird.
Ich hoffe, ich habe den richtigen Punkt ausgeführt.
Sorry, wenn ich falsch liege!

Gruß
Scanner