AW: In Userform Daten splitten
#1
Hallo Zusammen,

benötige Hilfe beim Daten splitten in der Userform.

Ich kopiere eine Zeile aus einem Programm und füge sie bei mir in die Textbox1 ein und splitte die Daten.

Die Originalzeile sieht folgendermaßen aus:

Vorname Nachname,  Firma, G-EDJ/PPI-Gebäude, Tel: 123456, Kst: 123456 

Das G-EDJ/PPI soll nicht getrennt werden. Das funktioniert auch. 
Nur ist es auch so, dass der erste Buchstabe und Bindestrich nicht vorhanden sind. 
Kann man das so machen, dass es sowohl als auch geht? Z.B. EDJ/PPI

Private Sub CommandButton3_Click()

    Dim dataArray() As String, wwArr() As String
    Dim rawData As String
 
    ' 1. Daten aus der Eingabe-TextBox holen
    rawData = Me.TextBox1.Value
 
    ' 2. Prüfen, ob Daten vorhanden sind
    If rawData = "" Then
        MsgBox "Bitte Daten eingeben!", vbExclamation
        Exit Sub
    End If
 
    ' 3. Daten splitten (Beispiel: Trennzeichen ist ein Komma ",")
    '    Vorname Nachname, Firma, G-EDJ/PPI-J550, Tel: 123456, Kst: 123456
    '    dataArray    (0),  (1),    (2)      ,      (3)  ,  (4)
    '    wwArr                    (0)- (1) -(2)
    dataArray = Split(rawData, ",")
    wwArr = Split(Trim(dataArray(2)), "-")
 
    ' 4. Gesplittete Daten in die Ziel-TextBoxen schreiben
    ' UBound prüft, ob genügend Teile vorhanden sind, um Fehler zu vermeiden
    If UBound(dataArray) >= 2 Then
        Me.Label2 = Trim(dataArray(0))        ' Vor- und Nachname
        Me.Label3 = Trim(dataArray(1))        ' Company
        Me.Label4 = Trim(wwArr(0) & "-" & wwArr(1)) ' G-EDJ/PPI
        Me.Label5 = Trim(wwArr(2))            ' J550
        Me.Label6 = Trim(dataArray(3))        ' Tel
        Me.Label7 = Trim(dataArray(4))        ' Kst
    Else


Angehängte Dateien
.xlsm   Warenempfänger OEP II - Kopie.xlsm (Größe: 84,11 KB / Downloads: 4)
Antworten Top
#2
Hi,

Versuch Nr. 3:

https://www.herber.de/cgi-bin/eachthread.pl?idx=2026206
https://www.office-hilfe.com/support/thr...ost-361209

Warum bleibst Du nicht in einem Forum, zumal Du in beiden Foren gemeldet hast, dass das Problem gelöst ist?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
Weil mir eben erst der Fehler aufgefallen war. Und ich finde diese Plattform sehr bedienerfreundlich. Daher will ich lieber hier bleiben.
Antworten Top
#4
Hi
du willst also das DataArray(2) noch einmal teilen und getrennt werden muss es beim hinteren Bindestrich, wobei der Text 1 oder 2 bindestriche enthalten kann.

In Excel 365 würde man das mit TEXTVOR und TEXTNACH lösen, wobei der dritte Parameter auf -1 gesetzt wird, um anzugeben dass das letzte Vorkommen des Zeichens für die Trennung verwendet werden soll und nicht das erste.
Leider hat es TEXTVOR und TEXTNACH nicht geschafft, in VBA übernommen zu werden, auch nicht als Worksheetfunction.

du könntest hier die Postion des letzten "-" mit InstrRev ermitteln und dann zuweisen:

PHP-Code:
pos = InstrRev(dataArray(2), "-")
Label4 = Left(dataArray(2), pos - 1)
Label5 = Mid(dataArray(2), pos + 1)

Gruß Daniel
Antworten Top
#5
Hallo Slowboarder,

großen Dank. Klappt Super. 

Wünsche Dir einen schönen Abend!

Gruß
Chris
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste