AHNUNG? Geschrieben 16. Juni 2006 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
Mohadipe Geschrieben 16. Juni 2006 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
AHNUNG? Geschrieben 16. Juni 2006 Autor 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
gordonski Geschrieben 16. Juni 2006 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
Crash_Overload Geschrieben 16. Juni 2006 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
AHNUNG? Geschrieben 16. Juni 2006 Autor Geschrieben 16. Juni 2006 Weltklasse! Vielen Dank, werde ich ausprobieren. Zitieren
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.