Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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

Zellinhalt beschneiden

Zellinhalt beschneiden
24.10.2018 12:32:30
Boory
Hallo Forum,
bisher musste ich einen QR Code scannen, der aus zwei Teilen bestand, von dem ich nur den _ ersten Teil gebraucht habe 5ABC123456,2FH29AV. Das Linke ist die benötigte Seriennummer - den rechten Teil schneide ich weg:

If Target.Row > 1 Then
If Target.Column = 3 Or Target.Column = 8 Then
If Target.Cells.Count = 1 Then
Application.EnableEvents = False
Target.Value = Left(Trim(Target.Text), 10)
Application.EnableEvents = True
End If
End If
End If

Jetzt wurde der QR-Code-Inhalt aber erweitert und schaut nun so aus:
Gerätetyp(14 Zeichen),3AX13AV,5ABC123456,3y3y0y
Ich suche nun eine Möglichkeit, diesen gescannten String zu zerlegen.
In die gleiche Spalte der Tabelle müssen aber auch noch Seriennummern nach dem o.g. "alten" Modus gescannt werden. Zur Identifikation könnte man aber eventuell den "Gerätetyp" des neuen QR-Codes benutzen, da es dafür nur 2 Varianten gibt (z.B. Gerätetyp A und Gerätetyp B). Also Wenn "Gerätetyp A ODER Gerätetyp B, dann Wegschneide-Option 2, sonst Wegschneide-Option 1" - oder etwas in der Richtung... :)
Irgendwie hab ich hier eine Denkblockade (oder eine Wissenslücke)... Kann mir hier jemand weiterhelfen?
Vielen Dank und viele Grüße - Boory

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt beschneiden
24.10.2018 12:43:00
ChrisL
Hi
Ein Beispiel (s=Target)
Sub t()
Dim s As String
s = "5ABC123456,2FH29AV"
's = "Gerätetyp(14 Zeichen),3AX13AV,5ABC123456,3y3y0y"
If InStr(s, "Gerätetyp") Then
MsgBox Split(s, ",")(2)
Else
MsgBox Split(s, ",")(0)
End If
End Sub

cu
Chris
AW: Zellinhalt beschneiden
26.10.2018 14:21:42
Boory
Hallo Chris,
zuerst mal ganz lieben Dank für's Helfen. Ich glaube aber, Du hast da was missverstanden.
Der Teil "5ABC123456" ist der, den ich brauche. ALLES ANDERE soll weggelöscht werden.
Und zwar zum Einen bei der Version der 2-Teiligen Eingabe (5ABC123456,3y3y0y), wie auch
bei Eingabe der 4-Teiligen Eingabe (Gerätetyp(14 Zeichen),3AX13AV,5ABC123456,3y3y0y).
Es muss eben leider BEIDES funktionieren. In VBA bin ich da nicht ganz so fit, daher die
Frage - wäre Dein Code in einem Modul zu verwenden oder in der Arbeitsmapp/Tabelle direkt?
Viele Grüße - Boory
Anzeige
AW: Zellinhalt beschneiden
24.10.2018 12:54:09
UweD
Hallo
so?
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Row > 1 Then 
        If Target.Column = 3 Or Target.Column = 8 Then 
            If Target.Cells.Count = 1 Then 
                Dim Arr, i As Integer 
                 
                Application.EnableEvents = False 
                 
                ' ********** zum testen 
                'Target = "5ABC123456,2FH29AV" 
                'oder 
                'Target = "Gerätetyp(14 Zeichen),3AX13AV,5ABC123456,3y3y0y" 
                ' *********** 
                 
                Arr = Split(Target, ",") 
                Select Case Ubound(Arr) 
                    Case 1   'Array fängt mit 0 an 
                        '2 Teilig 
                        Target = Arr(0) 
                        'Serno = Arr(1) 
                        'usw 
                    Case 3 
                        '4 Teilig 
                        Target = Arr(2) 
                        'Serno = Arr(3) 
                        'usw 
                End Select 
                 
                Application.EnableEvents = True 
            End If 
        End If 
    End If 
End Sub 
LG UweD
Anzeige
AW: Zellinhalt beschneiden
26.10.2018 14:38:20
Boory
Hallo Uwe,
das schaut so aus, als ob es das können sollte, was ich brauche... :) Allerdings hab ich das _ Problem, dass bei mir in der Tabelle selbst

Private Sub Worksheet_Change(ByVal Target As Range)
bereits für eine andere Funktion verwendet wird (Soundfunktion "bolBeep" für den Scan-Quittungston, da der Scanrechner von der Position, von der ich scanne, nicht einsehbar ist). Wie hänge ich Deinen Code da jetzt am besten rein, so dass mir der Debugger da nicht anspringt?
Viele Grüße - Boory
AW: Zellinhalt beschneiden
26.10.2018 15:06:36
UweD
Hallo
versteh ich nicht.
Ein Programm sollte immer so lange verfeinert werden, bis kein Fehler mehr Auftritt. also nie in den Debuggermode gelangt.
Z.B. Fehlerbehandlung drum


Es können doch mehrere Routinen abgefragt werden...
Aber der Beep paast doch gut hierzu
Beispiel:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    
    
    
    '************Zelländerungen im Bereich 1 bearbeiten 
    If Target.Row > 1 Then
        If Target.Column = 3 Or Target.Column = 8 Then
            If Target.Cells.Count = 1 Then
                Dim Arr, i As Integer
                 
                '********'Hier Beep 
                'mach was ' 
                
                
                
                Application.EnableEvents = False
                 
                Arr = Split(Target, ",")
                Select Case Ubound(Arr)
                    Case 1   'Array fängt mit 0 an 
                        '2 Teilig 
                        Target = Arr(0)
                        'Serno = Arr(1) 
                        'usw 
                    Case 3
                        '4 Teilig 
                        Target = Arr(2)
                        'Serno = Arr(3) 
                        'usw 
                End Select
                 
                Application.EnableEvents = True
            End If
        End If
    End If
    
    
    '************Zelländerungen im Bereich 2 bearbeiten 
    If Target.Row = 5 Then
        If Target.Column >= 10 And Target.Column <= 18 Then
            If Target.Cells.Count = 1 Then
                
                'hier läuft was ganz anderes 
    
            End If
        End If
    End If
    
    
    
        
    '*** Fehlerbehandlung 
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

LG UweD
Anzeige
AW: Zellinhalt beschneiden
29.10.2018 10:48:17
Boory
Hallo Uwe,
vielen Dank für Deine Hilfe. Wie gesagt - oben steht ja schon "VBA bescheiden"... :) Ich beschäftige mich nicht ausschließlich mit dem Thema, da ich da leider nicht die Zeit dafür habe, die ich gerne dafür hätte. Aber Du hast mir in jedem Fall (auch zum Thema "Zusammenführen der Routinen"!) sehr geholfen!
Daher nochmal vielen Dank!!!
Viele Grüße - Boory
PS.: Auch an dieser Stelle nochmal vielen Dank an ChrisL!!!
Prima! Danke für die Rückmeldung. owT
30.10.2018 07:35:43
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige