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

Array Splitten Transponse Ausgabe in 2 Spalten

Array Splitten Transponse Ausgabe in 2 Spalten
23.04.2009 10:44:32
chris
Hallo VBA experten,
ich habe eine frage und bitte um eure Hilfe.
Ich komme alleine nicht weiter:(
Ich habe eine Tabelle1. In Spalte 1 Stehen z.b Werte untereinander.
27>27
17>17
6>6
17>1
usw...
diese möchte ich gerne in ein Array übernehmen und dann in Tabelle2 ausgeben.
In tabelle 2 sollen die Werte aber nicht in einer spalte ausgegeben werden sondern in 2.
trennzeichen ist ">"
ich habe es schon so versucht aber es klappt nicht und ich weiß nicht weiter.
Option Explicit

Sub diagramm()
Dim lz_erster As Integer
Dim lz_letzter As Integer
Dim Daten_erster
Dim Daten_letzter
Dim cb
lz_erster = Worksheets("Analyse").Cells(Rows.Count, 1).End(xlUp).Row
lz_letzter = Worksheets("Analyse").Cells(Rows.Count, 5).End(xlUp).Row
Daten_erster = WorksheetFunction.Transpose(Range("A4:A" & lz_erster))
End Sub


vielen Dank für eure Hilfe.
gruß Chris

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array Splitten Transponse Ausgabe in 2 Spalten
23.04.2009 11:19:56
Hajo_Zi
Hallo Chris,
Excel hat auch einen Makrorecorder. Schreibe Sie erst rein und dann Daten Text in Spalten.

AW: Array Splitten Transponse Ausgabe in 2 Spalten
23.04.2009 11:21:29
chris
Danke Hajo.
So habe ich es gemacht.
Ist zwar etwas umständlich weil ich dann die Daten aus tabelle 1 in tabelle 2 verschieben muss weil beim TextinSpalten es nicht möglich ist die Ausgabe in eine andere Tabelle zumachen.
Danke trotzdem
AW: Array Ausgabe in 2 Spalten - Splitten
23.04.2009 11:56:33
Erich
Hi Chris,
hier eine Alternative:

Sub Splitten()
Dim lz_erster As Long   ' besser nicht integer
Dim lz_letzter As Long
Dim zz As Long, pp As Long, arrA, arrB
With Worksheets("Tabelle1")                   ' Lesen in Tab1, Sp. A
lz_erster = .Cells(.Rows.Count, 1).End(xlUp).Row
arrA = Application.Transpose(.Cells(1, 1).Resize(lz_erster))
End With
ReDim arrB(1 To lz_erster, 1 To 2)
For zz = 1 To lz_erster
pp = InStr(arrA(zz), ">")
If pp = 0 Then pp = Len(arrA(zz))
arrB(zz, 1) = Left(arrA(zz), pp - 1)
arrB(zz, 2) = Right(arrA(zz), Len(arrA(zz)) - pp)
Next zz
With Worksheets("Tabelle2")                  ' Ausgeben in Tab2, Sp. 5+6
lz_letzter = .Cells(.Rows.Count, 5).End(xlUp).Row
.Cells(lz_letzter + 1, 5).Resize(lz_erster, 2) = arrB
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Array in 2 Spalten splitten
23.04.2009 13:11:59
Erich
Hi Chris,
in meiner Routine war noch ein Fehler - wenn im Text kein ">" vorkommt, fehlte ein Zeichen.
Hier eine neue Version, in der ich Rudis "Split" aufgenommen habe:

Sub Splitten2()
Dim lz_erster As Long   ' besser nicht integer
Dim lz_letzter As Long
Dim zz As Long, pp As Long, arrA, arrB, arrS
With Worksheets("Tabelle1")                   ' Lesen in Tab1, Sp. A
lz_erster = .Cells(.Rows.Count, 1).End(xlUp).Row
arrA = Application.Transpose(.Cells(1, 1).Resize(lz_erster))
End With
ReDim arrB(1 To lz_erster, 1 To 2)
For zz = 1 To lz_erster
arrS = Split(arrA(zz), ">")
arrB(zz, 1) = arrS(0)
If UBound(arrS) > 0 Then arrB(zz, 2) = arrS(1)
Next zz
With Worksheets("Tabelle2")                  ' Ausgeben in Tab2, Sp. 5+6
lz_letzter = .Cells(.Rows.Count, 5).End(xlUp).Row
.Cells(lz_letzter + 1, 5).Resize(lz_erster, 2) = arrB
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Array in 2 Spalten splitten
23.04.2009 15:45:35
chris
Danke euch beiden vielmals für eure VBA Antworten.
Habs vorhin nicht mehr geschafft anzuschauen.
Werde ich gleich morgen machen.
Danke und schönen Tag noch !
gruß Chris
AW: Array in 2 Spalten mit TextToColumns
23.04.2009 17:01:29
Erich
Hi Chris,
hier hab ich mal Hajos Vorschlag umgesetzt. Sieht auch ganz gut aus:

Sub SplittenT()
Dim lngQ As Long, rngQ As Range
With Worksheets("Tabelle1")                     ' Quellbereich in Tab1, Sp. A
lngQ = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rngQ = .Cells(1, 1).Resize(lngQ)
End With
With Worksheets("Tabelle2")
With .Cells(.Cells(.Rows.Count, 5).End(xlUp).Row + 1, 5).Resize(lngQ)
.Value = rngQ.Value           ' Ausgeben in Tab2, Sp. 5, dann aufteilen
.TextToColumns Destination:=.Cells(1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
Tab:=False, Semicolon:=False, Comma:=False, Space:=False, _
Other:=True, OtherChar:=">", _
FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
End With
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Array in 2 Spalten mit TextToColumns
23.04.2009 17:13:17
chris
Hallo Erich,
danke noch einmal.
wenn ich morgen wieder dazu komme schau ich mir gleich alle Vorschläge mal an.
Ihr seid einfach gut :)
Danke und schönen Abend
AW: Array Splitten Transponse Ausgabe in 2 Spalten
23.04.2009 12:13:31
Rudi
Hallo,

Sub splitten()
Dim arrTmp, arrSplit, i As Long
With Sheets(1)
arrTmp = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
ReDim arrSplit(1 To UBound(arrTmp), 1 To 2)
For i = 1 To UBound(arrTmp)
arrSplit(i, 1) = Split(arrTmp(i, 1), ">")(0)
arrSplit(i, 2) = Split(arrTmp(i, 1), ">")(1)
Next
Sheets(2).Cells(1, 1).Resize(UBound(arrTmp), 2) = arrSplit
End Sub


Gruß
Rudi

Anzeige
AW: Array Splitten Transponse Ausgabe in 2 Spalten
24.04.2009 08:16:57
chris
Hallo Rudi,
habe mich für deine version entschieden.
Weiß nicht warum aber läuft gut :)
Danke auch den anderen Helfern !
gruß Chris

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige