AHNUNG? Geschrieben 16. Juni 2006 Teilen Geschrieben 16. Juni 2006 Hallo zusammen, ich habe in einer Excel-Zelle unterschiedlichste Zahlen stehen (z.B. 810/81/114 088 2, - 05.05.2006, 1024-06-0000-06275). Nun möchte ich gerne die Zahlen - von links - bis zum ersten Komma haben. Eventuelle aber auch mal von rechts bis zum ersten Komma oder den Mittelteil. Kennt jemand den Code??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mohadipe Geschrieben 16. Juni 2006 Teilen Geschrieben 16. Juni 2006 Schaust du hier: http://www.excelformeln.de/formeln.html?welcher=101 ganz ohne VBA, falls das hilft is zwar etwas anders als deine Aufgabe aber lässt sich sicher anpassen denk ich. Warum eigentlich alle diese Werte in einer Zelle? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AHNUNG? Geschrieben 16. Juni 2006 Autor Teilen Geschrieben 16. Juni 2006 Hallo, vielen Dank für die Antwort. Diese Werte stehen in einer Zelle, weil das Programm - aus dem ich die Daten gezogen habe - diese so liefert. Nun sollen Sie in Exel weiter bearbeitet werden. Ich würde es trotzdem gerne mit VBA lösen, da ich diese Zahlen dann noch weiter verarbeiten muss. Das ist dann mit VBA einfacher. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gordonski Geschrieben 16. Juni 2006 Teilen Geschrieben 16. Juni 2006 Veruch es mal so: Dim x As Integer Dim zahlen As String x = InStr(Range("b5").Value, ",") zahlen = Mid(Range("b5").Value, 1, x - 1) InStr(zu dursuchender String, gesuchter String) gibt die Anfangsposition eines Strings (hier das Komma) innerhalb eines Strings (also der Zelleninhalt) wieder. Mit Mid(String,Start,Ende) kannst du dann in diesem Beispiel die Zeichen von Position 1 bis eine Position vor dem Komma auslesen. alternativ ginge auch Left(Range("b5").Value, x-1). Left liest dann x-1 zeichen von links nach rechts, es gibt natürlich auch Right(..., ...) Hilft Dir das weiter? Gruß Gordonski Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash_Overload Geschrieben 16. Juni 2006 Teilen Geschrieben 16. Juni 2006 Du müsstest auf die Variable "strCell" dynamisch die Excel-Zelle schreiben. Dim strCell Dim strValue Dim lngKommaFound 'Von Links bis zum ersten Komma strCell = "810/81/114 088 2, - 05.05.2006, 1024-06-0000-06275" lngKommaFound = InStr(1, strCell, ",") strValue = Mid(strCell, 1, lngKommaFound - 1) MsgBox strValue 'Von Links bis zum letzten Komma strCell = "810/81/114 088 2, - 05.05.2006, 1024-06-0000-06275" lngKommaFound = DV_InStrRight(strCell, ",") strValue = Mid(strCell, 1, lngKommaFound - 1) MsgBox strValue 'Von Rechts bis zum ersten Komma strCell = "810/81/114 088 2, - 05.05.2006, 1024-06-0000-06275" lngKommaFound = DV_InStrRight(strCell, ",") strValue = Mid(strCell, lngKommaFound + 1) MsgBox strValue 'Von Rechts bis zum letzten Komma strCell = "810/81/114 088 2, - 05.05.2006, 1024-06-0000-06275" lngKommaFound = DV_InStrRight(strCell, ",") strValue = Mid(strCell, 1, lngKommaFound - 1) MsgBox strValue 'Von Links dem ersten Komma bis Rechts dem ersten Komma Dim lngKommaFoundLinks Dim lngKommaFoundRechts strCell = "810/81/114 088 2, - 05.05.2006, 1024-06-0000-06275" lngKommaFoundLinks = InStr(1, strCell, ",") lngKommaFoundRechts = DV_InStrRight(strCell, ",") strValue = Mid(strCell, 1, lngKommaFoundRechts - 1) strValue = Mid(strValue, lngKommaFoundLinks + 1) MsgBox strValue Private Function DV_InStrRight(strQuelle, strSuche) Dim intPos If Not (IsNull(strQuelle) Or IsNull(strSuche)) Then intPos = InStr(strQuelle, strSuche) Do While intPos > 0 DV_InStrRight = intPos intPos = InStr(intPos + 1, strQuelle, strSuche) Loop End If End Function Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AHNUNG? Geschrieben 16. Juni 2006 Autor Teilen Geschrieben 16. Juni 2006 Weltklasse! Vielen Dank, werde ich ausprobieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.