Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellinhalte aufteilen per VBA

Forumthread: Zellinhalte aufteilen per VBA

Zellinhalte aufteilen per VBA
19.11.2002 17:15:06
MikeS
Hallo Leute,

in Spalte A (beginnend mit A2) stehen in jeder Zelle mehrere
Wörter (durch " " voneinander getrennt), die ich per VBA
in die Nachbarzellen aufteilen möchte.

z.B.:

A2 = "Der Baum ist blau"

dann Aufteilung so:

B2 = "Der"
C2 = "Baum"
D2 = "ist"
E2 = "blau"

Bitte helft mir, ist dringend.

Vielen Dank
MikeS

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zellinhalte aufteilen per VBA
19.11.2002 17:28:24
ANdreas
Hallo Mike,

mit VBA geht´s z.B. so:
Viel Spaß,
Andreas

für alle Zellen in Spalte A?
19.11.2002 20:12:41
MikeS
Hi Andreas,

vielen Dank für Deine Lösung.

Ich benötige aber eine Lösung, die alle Zellinhalte der
1.Spalte (beginnend bei A2) bis zur ersten leeren Zelle
in die Nachbarzellen aufteilt.

Vielleicht noch 'ne Idee?

Ciao MikeS

Anzeige
Re: für alle Zellen in Spalte A!
19.11.2002 20:47:10
Peter Feustel
Hallo Mike,

so sollte es gehen:

Sub TextTrennen()
'
' in Spalte A (beginnend mit A2) stehen in jeder Zelle mehrere
' Wörter (durch " " voneinander getrennt), die ich per VBA
' in die Nachbarzellen aufteilen möchte.
'
' z.B.: A2 = "Der Baum ist blau"
'
' dann Aufteilung so:
'
' B2 = "Der"
' C2 = "Baum"
' D2 = "ist"
' E2 = "blau"
'

Dim sText As String ' der eingegebene Text
Dim iPos As Integer ' die Position des Space (Trennzeichen)
Dim intCol As Integer ' die Beginn-Spalte der Aufsplittung
Dim iIndx As Integer ' For/Next Index
Dim lLetzte As Long ' letzte zu bearbeitende Zeile

lLetzte = Range("A65536").End(xlUp).Row

For iIndx = 2 To lLetzte
sText = Range("A" & iIndx).Value ' den Text holen
iPos = InStr(sText, " ") ' Space-Position feststellen
intCol = 2 ' Beginn der Aufteilungs-Spalte
While iPos > 0 ' solange Space gefunden wurde
Cells(iIndx, intCol).Value = Left(sText, iPos - 1)
sText = Right(sText, Len(sText) - iPos)
iPos = InStr(sText, " "): intCol = intCol + 1
Wend
Cells(iIndx, intCol).Value = sText
Next iIndx

End Sub

Gruß, Peter

Anzeige
Re: etwas eleganter
19.11.2002 21:19:06
Peter Feustel
Hallo Mike,

hier noch eine etwas 'elegantere' Version:

Sub TextTrennen()
'

Dim sText As String ' der eingegebene Text
Dim iPos As Integer ' die Position des Space (Trennzeichen)
Dim iCol As Integer ' die Beginn-Spalte der Aufsplittung
Dim iIndx As Integer ' For/Next Index

For iIndx = 2 To Range("A65536").End(xlUp).Row ' von Zeile 2 bis Ende
sText = Range("A" & iIndx).Value ' den Text holen
iPos = InStr(sText, " ") ' Space-Position feststellen
iCol = 2 ' Beginn der Aufteilungs-Spalte
While iPos > 0 ' solange Space gefunden wurde
Cells(iIndx, iCol).Value = Left(sText, iPos - 1) ' Zellen ab B befüllen
sText = Right(sText, Len(sText) - iPos) ' Eingabetext "verkürzen"
iPos = InStr(sText, " ") ' Space suchen
iCol = iCol + 1 ' nächste Spalte errechnen
Wend
Cells(iIndx, iCol).Value = sText ' letztes Wort übertragen
Next iIndx ' nächste Zeile

End Sub

Gruß, Peter

Anzeige
Dankeschön, perfekt!!!
22.11.2002 18:32:57
MikeS
o.T.
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zellinhalte aufteilen per VBA


Schritt-für-Schritt-Anleitung

Um Zellinhalte in Excel per VBA zu trennen, kannst du folgenden Code verwenden. Dieser Code geht davon aus, dass die Inhalte in Spalte A beginnen, ab Zelle A2 und bis zur ersten leeren Zelle gehen.

Sub TextTrennen()
    Dim sText As String             ' der eingegebene Text
    Dim iPos As Integer            ' die Position des Space (Trennzeichen)
    Dim intCol As Integer          ' die Beginn-Spalte der Aufsplittung
    Dim iIndx As Integer           ' For/Next Index
    Dim lLetzte As Long            ' letzte zu bearbeitende Zeile

    lLetzte = Range("A65536").End(xlUp).Row

    For iIndx = 2 To lLetzte
        sText = Range("A" & iIndx).Value        ' den Text holen
        iPos = InStr(sText, " ")                ' Space-Position feststellen
        intCol = 2                              ' Beginn der Aufteilungs-Spalte
        While iPos > 0                          ' solange Space gefunden wurde
            Cells(iIndx, intCol).Value = Left(sText, iPos - 1)
            sText = Right(sText, Len(sText) - iPos)
            iPos = InStr(sText, " "): intCol = intCol + 1
        Wend
        Cells(iIndx, intCol).Value = sText
    Next iIndx
End Sub

Führe diesen Code im VBA-Editor aus, um die Zellinhalte in Spalten zu teilen.


Häufige Fehler und Lösungen

  1. Fehler: "Typ Mismatch"

    • Lösung: Stelle sicher, dass alle Zellen in Spalte A Text enthalten. Leere Zellen können diesen Fehler verursachen.
  2. Fehler: "Subscript out of range"

    • Lösung: Überprüfe, ob die Range korrekt definiert ist und keine falschen Zellbezüge existieren.
  3. Fehler: Nicht alle Zellen wurden bearbeitet

    • Lösung: Stelle sicher, dass die Schleife bis zur letzten gefüllten Zelle in Spalte A korrekt definiert ist.

Alternative Methoden

Neben VBA kannst du auch die Excel-Funktion "Text in Spalten" verwenden, um Inhalte aufzuteilen. Hier ist, wie du das machst:

  1. Wähle die Zellen in Spalte A aus, die du teilen möchtest.
  2. Gehe zum Menü "Daten" und wähle die Option "Text in Spalten".
  3. Wähle "Getrennt" und klicke auf "Weiter".
  4. Setze ein Häkchen bei "Leerzeichen" als Trennzeichen.
  5. Klicke auf "Fertigstellen".

Diese Methode ist besonders nützlich, wenn du keine VBA-Kenntnisse hast.


Praktische Beispiele

Angenommen, du hast folgende Werte in Spalte A:

A
Der Baum ist blau
Die Katze schläft
Das Auto fährt schnell

Nach Ausführung des VBA-Codes würden die Zellen wie folgt aufgeteilt:

A B C D E
Der Baum ist blau Der Baum ist blau
Die Katze schläft Die Katze schläft
Das Auto fährt schnell Das Auto fährt schnell

Tipps für Profis

  • Du kannst den Code anpassen, um andere Trennzeichen zu verwenden, indem du das Zeichen in InStr(sText, " ") änderst.
  • Wenn du häufig Zellinhalte trennen musst, erwäge, den Code in ein Modul zu speichern, um ihn einfach wiederverwenden zu können.
  • Nutze Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler abzufangen.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Trennzeichen verwenden? Ja, du kannst die Logik im Code anpassen, um mehrere Trennzeichen zu berücksichtigen, indem du zusätzliche InStr-Befehle hinzufügst.

2. Wie kann ich die Ergebnisse in einer bestimmten Spalte beginnen lassen? Ändere die intCol-Variable im Code auf die gewünschte Spalte, in der die Aufteilung beginnen soll.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige