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

Text aufteilen

Text aufteilen
Helmut
Hallo Profis,
ich bin mal wieder auf Eure Hilfe angewiesen.
Ich muss regelmäßig eine Excel-Tabelle mit mehreren Spalten und Zeilen Inhalt in eine CSV-Datei per VBA umwandeln.
Das krieg ich bis auf folgende Herausforderung ohne Probleme hin:
In einer Spalte der Excel-Tabelle darf Text bis zu 140 Stellen eingegeben werden. In der CSV-Datei dürfen aber dafür nur 4 Spalten mit einer maximalen Breite von 35 Stellen vorkommen.
Folgender Beispieltext soll aber so aufgeteilt werden, dass Wörter nicht auseinandergerissen werden, sondern nach einer Leerstelle mit der jeweils neuen Spalte begonnen wird.
"Dies ist ein x-beliebiger Beispieltext, der aus insgesamt 112 Zeichen (inkl. Satzzeichen + Leerstellen) besteht."
In jedem Datensatz steht natürlich jeweils ein anderer Text.
Für eine Lösung wäre ich Euch sehr dankbar.
MfG
Helmut

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Text aufteilen
26.07.2011 20:56:52
Josef

Hallo Helmut,
das geht z. B. so.
' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub split35()
  Dim rng As Range, rngF As Range
  Dim strText As String, strTmp As String
  Dim lngPos As Long, lngOffset As Long
  
  Const MAXLENGTH As Long = 35
  
  On Error GoTo ErrExit
  Application.ScreenUpdatingfalse
  
  Set rngF = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row) 'Beispiel für Spalte A
  
  For Each rng In rngF
    If Len(rng.Text) Then
      lngOffset = 0
      strText = rng.Text
      Do While Len(strText) And lngOffset < 4
        lngPos = InStr(MAXLENGTH - 1, strText, " ")
        If lngPos > MAXLENGTH Then
          strTmp = Trim$(Left(strText, InStrRev(Left(strText, 35), " ", MAXLENGTH - 1)))
        Else
          strTmp = Trim(Left(strText, MAXLENGTH))
        End If
        rng.Offset(0, lngOffset) = strTmp
        lngOffset = lngOffset + 1
        strText = Trim$(Mid(strText, Len(strTmp) + 1))
      Loop
    End If
  Next
  
  ErrExit:
  Application.ScreenUpdating = True
  
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Text aufteilen
27.07.2011 10:26:03
Helmut
Hallo Sepp,
vielen Dank für Deine schnelle und professionelle Hilfe.
Es klappt in meiner Anwendung wunderbar.
Wie kann man sich ein solches Können aneignen?
Hast Du Informatik studiert - oder wie hast Du das gelernt?
Ich habe meine bescheidenen Kenntnisse mit dem Makrorekorder angeeignet und ein wenig selbst experimentiert.
Vielen Dank nochmal, für Deine Unterstützung.
Gruß
Helmut
AW: Text aufteilen
27.07.2011 20:18:24
Josef

Hallo Helmut,
freut mich, dass es läuft.
"Hast Du Informatik studiert"
Gottlob nicht, sonst müsst' ich ja am Ende noch verstehen, was ich das verbreite;-))
Spaß an Excel/VBA, viel selber probieren und in diesem und anderen Foren fleißig mit-lesen/-denken, das wars auch schon.

« Gruß Sepp »

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige