Microsoft Excel

Herbers Excel/VBA-Archiv

mit VBA Text aufsplitten auf mehrere Zellen

Betrifft: mit VBA Text aufsplitten auf mehrere Zellen von: Franzi
Geschrieben am: 01.10.2014 09:46:55

Hallo zusammen,
folgende Frage.
ich möchte die Gleichung

A = B + C - D

splitten, sodass jeder Buchstabe in einer seperaten Zelle steht.
mit Teil = Split(Cells(Zeile, 1), "=") kann ich nur A seperieren, wie mache ich das aber mit B,C und D??

Danke für eure Hilfe,
Grüsse
Franzi

  

Betrifft: AW: mit VBA Text aufsplitten auf mehrere Zellen von: Daniel
Geschrieben am: 01.10.2014 10:26:21

Hi

1. Gleichung in eine Variable lesen

GL = Cells(Zeile, 1).value
2. In der Variablen alle Rechenzeichen durch das Leerzeichen ersetzen:
GL = Replace(GL, "=", " ")
GL = Replace(GL, "+", " ")
GL = Replace(GL, "-", " ")
Usw für alle möglichen Zeilen
3. Überzählige Leerzeichen entfernen:
GL = Worksheetfunction.trim(GL)
4. Auf die einzelnen Zeichen kannst du dann so zugreifen:
Teil1 = Split(GL, " ")(0)
Teil2 = Split(GL, " ")(1)
Teile = Split(GL, " ")(2)
Usw
Gruß Daniel


  

Betrifft: AW: mit VBA Text aufsplitten auf mehrere Zellen von: fcs
Geschrieben am: 01.10.2014 10:50:19

Hallo Franzi,

Daniels Vorschlag mit dem Leerzeichen als Trennzeichen funktioniert bei mir nicht 100%.
Günstiger ist es + und - durch = zu ersetzen, bevor man die Split-Funktion einsetzt.

Gruß
Franz

Sub TestSplit_2()

  Dim strText As String, strSep As String
  Dim Zeile As Long
  On Error Resume Next
  strSep = "=" 'oder anderes Zeichen, das in den Zellinhalten nicht vorkommt
  For Zeile = 3 To 5
    strText = Cells(Zeile, 1).Text
    If strText <> "" Then
      strText = Replace(strText, "=", strSep)
      strText = Replace(strText, "+", strSep)
      strText = Replace(strText, "-", strSep)
      strText = Trim(strText)
      Cells(Zeile, 2) = Trim(Split(strText, strSep)(0))
      Cells(Zeile, 3) = Trim(Split(strText, strSep)(1))
      Cells(Zeile, 4) = Trim(Split(strText, strSep)(2))
      Cells(Zeile, 5) = Trim(Split(strText, strSep)(3))
    End If
  Next

End Sub



  

Betrifft: AW: mit VBA Text aufsplitten auf mehrere Zellen von: Franzi
Geschrieben am: 01.10.2014 11:07:23

boah, das ist echt krass :)
vielen Dank für eure hilfe!!


  

Betrifft: AW: mit VBA Text aufsplitten auf mehrere Zellen von: Daniel
Geschrieben am: 01.10.2014 11:39:14

Hast du mal versucht herauszufinden, warum das mit dem Leerzeichen bei dir nicht funktioniert?
Enthalten deine "Variablen" in der Gleichung vielleicht selber ein Leerzeichen?
Gruß Daniel


  

Betrifft: AW: mit VBA Text aufsplitten auf mehrere Zellen von: fcs
Geschrieben am: 01.10.2014 16:40:04

Hallo Daniel,

ja der Beispieltext hatte beim Testen Leerzeichen. Ich hatte die von Franzi gepostete Gleichung in eine Zelle kopiert.
Es funktioniert dann, wenn man erst alle Leerzeichen durch "" (Leerstring) ersetzt und danach dann =, + und - durch Leerzeichen ersetzt.

Gruß
Franz


  

Betrifft: AW: mit VBA Text aufsplitten auf mehrere Zellen von: Daniel
Geschrieben am: 01.10.2014 17:02:59

Hi

die mehrfachen Leerzeichen hintereinander, die entstehen, wenn vor und nach den Rechenzeichen Leerzeichen vorhanden sind und man die Rechenzeichenzeichen ebenfalls durch Leerzeichen ersetzt, werden durch das WorksheetFunction.Trim(GL) (Schritt 3) eleminiert und zu einem Leerzeichen zusammengefasst.

Hast du diesen Schritt ebenfalls übernommen?
und wenn ja, hast du dann auch wirklich Worksheetfunction.Trim() verwendet und nicht nur Trim()?
Das sind nämlich zwei unterschiedliche Funktionen.
Worksheetfunction.Trim() elemeniniert die Leerzeichen am Anfang und Ende des Strings, sowie alle mehrfachen Leerzeichen innerhalb des Strings
[VBA.]Trim hingeben eleminiert nur die Leerzeichen am Anfang und Ende, aber nicht die zwischendrin!

Gruß Daniel


  

Betrifft: Das ginge auch in einem Zug mit einer ... von: Luc:-?
Geschrieben am: 01.10.2014 13:10:07

…UDF wie SplitVx, Franzi,
denn die ist u.a. auch speziell für solche Fälle gemacht:
=SplitVx("A = B + C - D";{" = "." + "." - "})
Die UDF findest du im Archiv in einer von mir entsprd ergänzten u. hochgeladenen BspDatei von Oberschlumpf.
Gruß, Luc :-?

Besser informiert mit …


 

Beiträge aus den Excel-Beispielen zum Thema "mit VBA Text aufsplitten auf mehrere Zellen"