Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus einer Zelle auf mehrere Zellen aufteilen

Daten aus einer Zelle auf mehrere Zellen aufteilen
23.08.2008 22:57:00
Gordon
Moin,
ich habe hier einer Zelle (A10) eine bis mehrere Zeichenketten, die jewiels durch ein ";" getrennt werden.
Nun soll jeweils jede Zeichenkette auf drei Zellen aufgespilltet werden:
A1 = Die ersten 10 Zeichen der 1.Kette
B1 = Die nächsten 10 Zeichen der 1.Kette
C1 = Die restlichen Zeichen der 1. Kette
A2 = Die ersten 10 Zeichen der 2.Kette
B2 = Die nächsten 10 Zeichen der 2.Kette
C2 = Die restlichen Zeichen der 2. Kette
A3 = Die ersten 10 Zeichen der 3.Kette
etc....
Hat jemand da eine Idee wie man das per VBA lösen kann. Kann mir denken, das es irgendwie mit "Left" geht, aber bin da leider nicht so erfahren drin.
Vielleicht hilft dabei noch, dass die Anzahl der Ketten in A11 stehen....
Danke schon mal für die Hilfe.
Gruß
Gordon
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
23.08.2008 23:13:00
Tino
Hallo,
schau dir mal die Funktion Text in Spalten… an, zu finden unter Daten.
Gruß Tino
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
23.08.2008 23:27:22
Gordon
Danke für den Hinweis,
habe es mir auch mal angeschaut, aber leider bringt mich das nicht so wirklich weiter. Es soll ja später per Makro laufen und da hat mir der Quelltext, der mir per "Makro aufzeichnen" angezeigt wurde leider gesagt bzw. hab ich ihn nicht so wirklich verstanden.
Des Weiteren kann ich bei "Text in Spalten" nur nach den Semikolon die einzelnen Zeichenketten trennen, aber dann ist mein Problem noch nicht gelöst, wie ich die einzelnen Ketten dann aufbrösel.
Bitte um Hilfe....
Gruß
Gordon
Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
23.08.2008 23:34:00
Tino
Hallo,
du schreibst doch.
A1 = Die ersten 10 Zeichen der 1.Kette
B1 = Die nächsten 10 Zeichen der 1.Kette
C1 = Die restlichen Zeichen der 1. Kette

Dies kannst du doch mit Text in Spalte…, mit der Option Feste Breite machen! Oder nicht?
Gruß Tino
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
23.08.2008 23:37:00
Gordon
Hmm...nee....es soll ja nicht speziel für diesen einen Fall angewendet werden, sondern auch für diverse andere Fälle die da noch kommen. Und da ja immer der restliche Teil (soll in C1, C2, C3...etc.) einer Kette immer verschieden lang ist, geht das so nicht bzw. wüßte ich nicht wie. :(
Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 00:03:00
Tino
Hallo,
vielleicht geht es so.

With Range("A10")
Range("A1") = Left$(.Value, InStr(.Value, ";") - 1)
Range("B1") = Left$(Right$(.Value, Len(.Value) - _
InStr(.Value, ";")), InStr(.Value, ";") - 1)
Range("C1") = Mid(.Value, InStrRev(.Value, ";") + 1)
End With


Gruß Tino

Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 00:12:00
Gordon
Klappt leider nicht.
Bei dem Quelltext wird in a1 die ganze erste Kette (also alle Zweichen bis zum 1.Semiklon) geschrieben.
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 00:13:00
Gordon
Klappt leider nicht.
Bei dem Quelltext wird in a1 die ganze erste Kette (also alle Zweichen bis zum 1.Semiklon) geschrieben.
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 11:02:17
Herby
Hallo Gordon,
ich habs mal so probiert. Müsste funktionieren.

Private Sub CommandButton1_Click()
Dim text As Variant
Dim i As Integer
text = Split(Cells(10, 1), ";")
For i = 0 To UBound(text)
If Len(text(i)) 


Viele Grüße
Herby

Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 00:22:57
Tino
Hallo,
könntest du mal ein Beispiel aufbauen wo zu erkennen ist wie dies zum Schluss aussehen soll.
Gruß Tino
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 00:39:49
Gordon
OK,
Inhalt Zelle A10: 0123456789abcdefghijXXX;9876543210aaabbbcccdö-;1010101010ababababab--;
Makro startet....Ergebnis:
Zelle A1: 0123456789
Zelle B1: abcdefghij
Zelle C1: XXX
Zelle A2: 9876543210
Zelle B2: aaabbbcccd
Zelle C2: ö-
Zelle A1: 1010101010
Zelle B1: ababababab
Zelle C1: --
Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 00:41:47
Tino
Hallo,
so mein letzter Versuch, vielleicht habe ich jetzt verstanden wie es gehen soll.

Sub test()
Dim strText As String
Dim strKette As String
Dim lngRow As Long
strText = Range("A10")
Do While InStr(strText, ";") > 0
lngRow = lngRow + 1
strKette = Left$(strText, InStr(strText, ";") - 1)
strText = Right$(strText, Len(strText) - InStr(strText, ";"))
Cells(lngRow, 1) = strKette
Loop
lngRow = lngRow + 1
Cells(lngRow, 1) = strText
Application.DisplayAlerts = False
Range("A1", Cells(lngRow, 1)).TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
_
FieldInfo:=Array(Array(0, 1), Array(10, 1), Array(20, 1)), TrailingMinusNumbers _
:=True
Application.DisplayAlerts = True
End Sub


Wünsche noch einen schönen Sonntag.
Gruß Tino

Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 00:53:06
Gordon
Funktioniert leider nicht....bekomme Fehlermeldung:

Fehler beim Kompilieren:
Benanntes Argument nicht gefunden


Dabei markiert er mir folgenden Ausdruck: TrailingMinusNumbers

AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 01:00:00
Tino
Hallo,
liegt an den Zeilenumbrüchen die hier fehlerhaft eingefügt werden.
https://www.herber.de/bbs/user/54856.txt
Sonst kommt der Fehler von der Version, ich habe 2003.
Zeichne Dir die Trennung auf (Text in Spalte) und ersetze den Code entsprechend.
Gruß Tino
Anzeige
AW: Daten aus einer Zelle auf mehrere Zellen aufteilen
24.08.2008 06:56:26
Erich
Hi Gordon,
vermutlich gab es den Parameter TrailingMinusNumbers in XL2000 noch nicht.
Probier mal

Option Explicit
Sub test2()
Dim strText As String, lngRow As Long
strText = Range("A10")
Do While InStr(strText, ";") > 0
lngRow = lngRow + 1
Cells(lngRow, 1) = Left$(strText, InStr(strText, ";") - 1)
strText = Right$(strText, Len(strText) - InStr(strText, ";"))
Loop
lngRow = lngRow + 1
Cells(lngRow, 1) = strText
Range(Cells(1, 2), Cells(lngRow, 3)).ClearContents
Range(Cells(1, 1), Cells(lngRow, 1)).TextToColumns _
Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 2), Array(10, 2), Array(20, 2))
End Sub

Mit der 2 in den FieldInfo wird erreicht, dass die Teile als Text ausgegeben werden
(und damit führende Nullen nicht verschwinden).
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten aus einer Zelle auf mehrere Zellen aufteilen


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle auf mehrere Zellen aufzuteilen, kannst Du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub SplitCellContents()
        Dim strText As String
        Dim lngRow As Long
        Dim textParts() As String
    
        strText = Range("A10").Value
        textParts = Split(strText, ";")
    
        For lngRow = LBound(textParts) To UBound(textParts)
            Cells(lngRow + 1, 1) = Left$(textParts(lngRow), 10)
            Cells(lngRow + 1, 2) = Mid$(textParts(lngRow), 11, 10)
            Cells(lngRow + 1, 3) = Mid$(textParts(lngRow), 21)
        Next lngRow
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und drücke ALT + F8, wähle SplitCellContents und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: Wenn Du die Fehlermeldung „Benanntes Argument nicht gefunden“ erhältst, könnte dies an einer falschen Excel-Version liegen. Achte darauf, dass Du die richtigen Parameter verwendest.

  • Falsche Ergebnisse bei der Trennung: Stelle sicher, dass die Eingabezelle (z.B. A10) die korrekten Daten enthält und dass die Daten durch ; getrennt sind.

  • Werte werden nicht korrekt aufgeteilt: Überprüfe die Länge der Teile, die Du aufteilen möchtest. Der Code oben geht davon aus, dass die ersten 10 Zeichen, die nächsten 10 Zeichen und der Rest genommen werden. Passe die Zahlen gegebenenfalls an.


Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch die Funktion „Text in Spalten“ in Excel nutzen:

  1. Markiere die Zelle mit den Daten (z.B. A10).
  2. Gehe zu Daten > Text in Spalten.
  3. Wähle Getrennt, klicke auf Weiter.
  4. Setze ein Häkchen bei Semikolon und klicke auf Fertig stellen.
  5. Danach kannst Du die einzelnen Zellen weiter bearbeiten, um sie in mehrere Spalten zu teilen.

Diese Methode eignet sich für einfache Trennungen, wenn Du mit mehreren Daten in einer Zelle in Excel arbeitest.


Praktische Beispiele

Hier ist ein Beispiel, wie Du eine Zelle mit mehreren Werten aufteilen kannst:

  • Inhalt in Zelle A10: 0123456789abcdefghij;9876543210aaabbbcccdö-;1010101010ababababab--

  • Ergebnis nach Ausführung des Makros:

    • A1: 0123456789
    • B1: abcdefghij
    • C1: XXX
    • A2: 9876543210
    • B2: aaabbbcccd
    • C2: ö-
    • A3: 1010101010
    • B3: ababababab
    • C3: --

Tipps für Profis

  • Verwende dynamische Bereiche: Anstelle von festen Zellreferenzen kannst Du dynamische Bereiche in VBA verwenden, um flexibler auf Änderungen in Deinen Daten zu reagieren.

  • Fehlerbehandlung: Implementiere Fehlerbehandlungen im VBA-Code, um unerwartete Fehler abzufangen und die Benutzererfahrung zu verbessern.

  • Makros automatisieren: Du kannst das Makro so einstellen, dass es automatisch ausgeführt wird, wenn Du die Datei öffnest oder bestimmte Daten eingibst.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Werte in einer Zelle trennen? Du kannst die Funktion „Text in Spalten“ verwenden oder ein VBA-Makro wie oben beschrieben, um den Inhalt einer Zelle auf mehrere Zellen aufzuteilen.

2. Welche Excel-Version wird benötigt? Die oben genannten VBA-Codes sollten in Excel 2007 und neuer funktionieren. Ältere Versionen könnten einige Parameter nicht unterstützen.

3. Kann ich die Trennung auch für andere Zeichen verwenden? Ja, Du kannst das Trennzeichen im VBA-Code anpassen, um auch andere Zeichen als ; zu verwenden.

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