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

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

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. :(
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

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
Anzeige
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: --
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
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

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige