Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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 in Spalten' per VBA ohne Daten überschreiben

'Text in Spalten' per VBA ohne Daten überschreiben
Kai
Hallo,
ich habe in der Spalte A und B Daten. Die Daten in der Spalte A ist ein String, wo einzelne Blöcke durch ein "&&" getrennt sind. Also so zB.
A____________________________B_____________________
HAUS && BAUM && BALL && BUS____Thomas_______________
BAUM && Zug && BALL ___________Klaus_______________
Aus wieviel Blöcke so ein String besteht, kann unterschiedlich sein. Also nie gleich.
Ich möchte nun den String aus der Spalte A wieder so splitten, dass die einzelnen Blöcke jeder für sich in einer Zelle steht. Das Problem dabei; ich möchte die Daten in der Spalte B nicht überschreiben.
Also, die Daten in B (Text in Spalten ?) so weit nach rechts verschoben werden, das mein längster String noch Platz hat.
Nur, wie ermittle ich, wieviel Spalten ich mit meinen Daten aus B rüber nach rechts verschieben muss, damit sie nicht mehr überschrieben werden. (vielleicht durch zählen der Trennzeichen ?)
Also in meinem oben genannten Beispiel müsste ich die beiden Namen "Thomas" und "Klaus" mindestens bis Spalte E verschieben, damit ich den String aus A splitten kann, ohne die Namen zu überschreiben.
Ich hoffe, ihr habt mich verstanden und könnt mir weiter helfen.
Bei Nachfragen bitte einfach melden.
Danke
Kai

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: 'Text in Spalten' per VBA ohne Daten überschreiben
07.07.2010 15:08:23
Rudi
Hallo,
Sub tt()
Dim iMax As Integer, arrTmp, i As Long
arrTmp = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
For i = 1 To UBound(arrTmp)
iMax = Application.Max(iMax, UBound(Split(arrTmp(i, 1), "&&")))
Next
Columns(2).Resize(, iMax).Insert
Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="&", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), _
TrailingMinusNumbers:=True
End Sub

Gruß
Rudi
Anzeige
Danke, funzt :-) owT
08.07.2010 08:51:42
Jockel

360 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige