Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
468to472
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
468to472
468to472
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bestimmte Werte aus einer Reihe heraus selektieren

bestimmte Werte aus einer Reihe heraus selektieren
12.08.2004 08:24:25
Marcus
Hallo,
Ich habe folgendes Problem:
Ich möchte in einer Reihe von Zahlen und Buchstaben einen ganz bestimmten Teil ausblenden und in meine Excel-Zelle einfügen.
Es handelt sich in diesem Fall nur um 2 verschiedene Codes.
Die Codes werden mit einem Barcodescanner eingescannt.
Beispiel 1: gescannt: 2K8087177825000030
ich brauche aber nur: 8087177825 (also die ersten beiden und die letzen 6 weg)
Beispiel 2: gescannt: 1CDEC8000150889 oder DEC8000150889
ich brauche aber nur: 8000150889 (also nur die letzten 10 werden gebraucht)
Beide Werte kommen in einer Tabelle vor, beide Werte ändern sich ständig, in den Werten gibt es kein Sonderzeichen, nur Buchstaben und ganze Zahlen.
Also nicht ganz so schwer. Es gäbe ja eine Möglichkeit über eine =Wenn...-Formel. Dafür brauche ich aber pro Eingabefeld ein Ausgabefeld. Das ganze sollte aber so laufen, das ich schlichtweg die Zelle markiere, scanne und der selektierte Wert steht in der Zelle. Der Bereich, wo die Werte eingegeben werden, ist bekannt und ändert sich nicht.
Im voraus schon mal vielen Dank
Marcus
AW: bestimmte Werte aus einer Reihe heraus selektieren
EtoPHG
Kannst Du bitte die Bedingungen in WENN-DANN formulieren.
Aus Deiner Erklärung geht das nicht hervor.
Gruss Hansueli
AW: bestimmte Werte aus einer Reihe heraus selektieren
Jörg
Hallo Marcus,
hier mein Versuch, Rechtsklick auf den Tabellenblattnamen, Code anzeigen, Code einfügen, Eingabebereich anpassen,VBA-Editor schliessen, Probescannen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then 'Range("A1:A10") ist der Eingabebereich, anpassen!
If Len(Target) = 18 Then 'Länge des Scancodes 18 Zeichen, dann
Target.Value = Mid(Target, 3, 10) 'die ersten 2 und letzten 6 Zeichen abschneiden
Else 'sonst
Target.Value = Right(Target, 10) 'die letzen 10 Zeichen verwenden
End If
End If
End Sub

Gruss Jörg
Anzeige
AW: bestimmte Werte aus einer Reihe heraus selektieren
12.08.2004 10:41:06
HermannZ
Hallo Marcus
über Formel
für Fall 1:=TEIL(A1;3;10)
für Fall 2:=TEIL(A1;6;10)
Gruß hermann
AW: bestimmte Werte aus einer Reihe heraus selektieren
Marcus
Erst mal danke, für die Hilfe. Die Formel von Hermann geht, aber ich brauche für diese Formel eine Eingabezelle (mit der Formel) und eine Ausgabezelle (fürs Ergebnis). Habe ich aber nicht, soll es möglichst auch nicht geben.
Der Code von Jörg funktioniert leider nicht, ich habe verschiedenes ausprobiert, aber es passiert rein gar nichts, ausser das der Originalcode da steht.
Also, die Scannereingabe entspricht der Eingabe einer Tastatur, nur schneller.
Das kann man mit einer Tastatur nachstellen.
Der erste Wert hat 15 Stellen, der zweite 18.
Das eingeben sollte so laufen: Zelle markieren, Zahl scannen, Wert wird selektiert, Wert in der Zelle wird korrigiert.
Ich finde die Idee von Jörg aber schon sehr gut.
Vielleicht ist da nur ein klitzekleiner Denkfehler drin?
Anzeige
AW: bestimmte Werte aus einer Reihe heraus selektieren
Jörg
Hallo Markus,
Mögliche Ursachen:
1.Mein Code muss in das Codefenster des Tabellenblatts, nicht in ein Modul.
2.Der Eingabebereich ist A1:A10, das muss an deine Bedürfnisse angepasst werden.
3.Dein Scanner löst nicht die Eingabetaste aus (kann er umprogrammiert werden?), sonst nach dem Scannen Entertaste betätigen.
Nachfrage:
Funktioniert mein Code bei dir, wenn Du eine Zahl von Hand eingibst?
Gruss Jörg
AW: bestimmte Werte aus einer Reihe heraus selektieren
13.08.2004 17:58:50
Marcus
Hy,
Nein, der Code funktioniert auch nicht per Hand. Der Scanner macht automatisch "Enter". Denn nach der Eingabe wird bereits die nächste Zelle markiert.
Ich habe den Code ins Tabellenfenster kopiert, und auch als Modul laufen lassen. Den Eingabebereich habe ich angepasst. Nix. Es passiert nix! Muss man eventuell im Excel etwas aktivieren? Ich werde mal ein leeres Tabellenblatt zum Testen aufmachen. Vielleicht wird in dem Lieferschein was unterdrückt...
Um die Sache etwas verständlicher zu machen:
Es geht hier um einen Lieferschein mit 20 Positionen.
Jede Position enthält zwei Nummern.
Fall 1: In Spalte C wird in den Zellen C24 bis C43 ein 15 stelliger Code hinterlegt, von dem ich aber nur die letzten 10 brauche. Der Code enthält ganze Zahlen und Grossbuchstaben (z.B: 1CDEC8000150625)
Fall 2: In Spalte D wird in den Zellen D24 bis D43 ein 18 stelliger Code hinterlegt, von dem ich aber die ersten 2 und die letzten 6 ausblenden muss. Auch der Code enthält ganze Zahlen und Grossbuchstaben (z.B: 2K8087177607000010)
Also könnte man das in zwei unterschiedliche Routinen aufbröseln. Ich denke, das sich die Zahlen in der nächsten Zeit nicht gross verändern werden. Auch könnte man ganz gut falsche Eingaben verhindern, aber da kann mir ja jemand später noch einen heissen Tip zu geben :-)
Ich würde mich echt freuen, wenn das klappt. Es würde mir eine ganze Menge Arbeit ersparen...
Grüsse
Marcus
Anzeige
AW: bestimmte Werte aus einer Reihe heraus selektieren
13.08.2004 18:07:27
Marcus
Hallo, Jörg!
Ich habe ein neues Tabellenblatt aufgemacht und den Code reinkopiert und es geht!
Also scheint das mit unserem Lieferschein nicht zu klappen. Aber warum den bloss...?
Frage: Ich habe in meiner Antwort vorher nochmal genau beschrieben, wie es sein soll. Könnte man das nicht für jede Spalte aufdröseln und so eine Art Fehlerkorrektur einbauen?
Also ich scanne in einer Zelle für 15 stelligen Code den 18 stelligen und es kommt eine Warnung, beim schliessen der Warnung wird die Zelle zurückgesetzt...
Und natürlich das gleiche für die Zellen mit 18 stelligen Code...
Grüsse Schröer
Anzeige
Daten Gültigkeit
Jörg
Hallo Markus,
Bereich, eine Spalte, des Eingabebereichs markieren und
Menü Daten, Gültigkeit..., Gültigkeitskriterium Textlänge.
Ich möchte dich noch darauf hinweisen, dass dein eines Beispiel sowohl 13-stellige als auch 15-stellige Scancodes aufzeigt.
Das andere Beispiel hat 18-stelligen Scancode.
Gruss Jörg
AW: bestimmte Werte aus einer Reihe heraus selektieren
13.08.2004 18:57:03
Marcus
Hallo,
Also, ich habe folgendes herausbekommen:
In unserem Lieferschein wird ein ActivX-Control namens LinearBarcode benutzt. Dieses Control funktioniert folgendermassen:
Das Control wird ausgewählt und im Tabellenblatt ein Bild eingefügt.
Unter Eigenschaften des Barcodebildes kann ich unter der Option "Linked Cell" die Zelle eingeben, die als Barcode dargestellt werden soll. Wenn ich den VBA-Code von Jörg in mein Tabellenblatt einfüge, funktioniert alles mit dem Rechnen und so. Aber sobald ich die Zelle mit dem LinearBarcode verbinde, funktioniert der VBA-Code nicht mehr!
Gibt es noch eine andere Möglichkeit aus der Zelle mit dem errechneten Endergebnis einen Barcode zu machen? Oder vielleicht eine Option "Erst über VBA ausrechnen, dann Barcode erstellen?
Ich weiss nur, das man das ActiveX-Control auch vom Programmierfenster aus steuern kann. Ich kann nämlich die Eigenschaften aufrufen.
Gruss
Marcus
Anzeige
Frage offen ich passe VBA, Active-X-VControl
Jörg
Hallo Markus,
das übersteigt dann doch meine geringen VBA-Kenntnisse. Hier kann ich leider nicht weiterhelfen und stelle darum die Frage auf offen.
Gruss Jörg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige