vbs such makro

03/02/2010 - 14:39 von Michael Feske | Report spam
Hallo alle zusammen,
ich bin mal wieder auf Euer Makrowissen angewiesen.
Ich arbeite mit Excel 2003.
In einem Arbeitsblatt sind ziemlich viele Zahlenkolonnen eingegeben,
untereinander.
Ich scanne mit einem Barcodescanner den Strichcode ein, dann soll die
entsprechende Zahlenkolonne gesucht werden und die Zeile markiert werden.

Das Problem ist dabei leider auch noch, das der Strichcode eine führende
1380 und eine hintenangestellte 0 enthàlt, welche in den Zahlenkolonen ja
nicht vorkommt.

Beispiel:
Zahlenkolonnne lautet 2872318 der Barcodescanner, gibt aber eine 13802872318
aus.

praktisch wàre es, das Makro über einen Button aufzurufen und dann mit dem
Scanner die Zahlen einzugeben.

Wer kann mir da weiterhelfen?

Gruß
Micha
 

Lesen sie die antworten

#1 Andreas Killer
03/02/2010 - 17:03 | Warnen spam
On 3 Feb., 14:39, Michael Feske
wrote:

Das Problem ist dabei leider auch noch, das der Strichcode eine führende
1380 und eine hintenangestellte 0 enthàlt, welche in den Zahlenkolonen ja
nicht vorkommt.

Beispiel:
Zahlenkolonnne lautet 2872318 der Barcodescanner, gibt aber eine 13802872318
aus.

praktisch wàre es, das Makro über einen Button aufzurufen und dann mit dem
Scanner die Zahlen einzugeben.


Nö, IMHO viel zu kompliziert.

Wenn der Scanner immer 1380 vorne und 0 hinten dran macht, dann lies
(im WorkSheet_Change-Ereignis) den eingescannten Wert aus der Zelle,
entferne die 1380 und die 0 und sucht dann in Deiner Zahlenreihe.

Naja, man kann ja auch erstmal nach dem kompletten Inhalt suchen und
wenn nicht gefunden erst dann die 1380 entfernen (wenn vorne dran)...

So aus dem Bauch:

dim Code, R as Range
'Barcode aus Zelle A1 lesen
Code = Range("a1")
'Suche danach in Spalte C
set R= Range("C:C").Find(Code, LookIn:= xlalues, LookAt:= xlWhole)
'Gefunden?
if R is Nothing then
'Nein, 1380 und 0 entfernen
if (Left$(Code,4) = "1380") and (Right$(Code,1) = "0") then
Code = Mid$(Code,5)
Code = Mid$(Code, 1, Len(Code)-1)
'Nochmal suchen
set R= Range("C:C").Find(Code, LookIn:= xlalues, LookAt:= xlWhole)
endif
endif
'Wenn gefunden Zelle markieren
if not R is Nothing then R.Select

Andreas.

Ähnliche fragen