Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CSV-Datei einlesen und einzelne Spalten in geänderter Reihenfolge im Tabellenblatt ablegen VBA

196 views
Skip to first unread message

computrai...@gmail.com

unread,
Dec 10, 2014, 4:28:56 PM12/10/14
to
Hallo liebe Newsgroupies,

ich stehe vor dem Problem, die Daten einer CSV-Datei in ein Worksheet einzulesen (Array?) und davon anschließend nur einige Spalten in geänderter Spalten-Reihenfolge in das Tabellenblatt zu schreiben.

Könnt Ihr mir hier bitte ein wenig unter die Arme greifen, wie ich die csv-Datei (z.B. Feld 1, 9, 5) per VBA in das Array einlesen kann, so dass ich es hinterher als Spalte 1,2,3 im Tabellenblatt stehen habe? Die Überschriften (sind in der csv-Datei enthalten), sollen natürlich mitkommen.

Ein bisschen Code wäre perfekt!

Oder gibt es andere, elegantere bzw. schnellere Möglichkeiten?

Über jede Hilfe und Anregung bin ich Euch sehr dankbar!

Vielen Dank im Voraus!

Andi

Claus Busch

unread,
Dec 11, 2014, 2:45:41 PM12/11/14
to
Hallo Andi,

Am Wed, 10 Dec 2014 13:28:55 -0800 (PST) schrieb
computrai...@gmail.com:

> Könnt Ihr mir hier bitte ein wenig unter die Arme greifen, wie ich die csv-Datei (z.B. Feld 1, 9, 5) per VBA in das Array einlesen kann, so dass ich es hinterher als Spalte 1,2,3 im Tabellenblatt stehen habe? Die Überschriften (sind in der csv-Datei enthalten), sollen natürlich mitkommen.

importiere die CSV-Datei und lasse dabei den Makro-Rekorder den Vorgang
aufnehmen. In Schritt 3 des Assistenten wähle dann die nicht gewünschten
Spalten ab, indem du sie im Assistenten anwählst und "Nicht importieren"
aktivierst.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional

computrai...@gmail.com

unread,
Dec 11, 2014, 3:02:00 PM12/11/14
to
Hallo Klaus,

das mit der Selektion beim Import klappt ja schon ganz gut und den VBA-Code kann ich wunderbar in meine bereits vorhandene Importroutine mit dem OpenDialog einbauen.

Was ich jetzt noch bräuchte wäre die Möglichkeit, die Spalten beim Einlesen auch noch zu vertauschen, weil das Ausgabeergebnis leider eine andere Anordnung der Spalten benötigt.

Das aufgezeichnete Array zeigt ja leider nur an, ob die Spalte importiert oder nicht importiert wird...

With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Import.csv", _
.TextFileColumnDataTypes = Array(1, 9, 9, 1, 9, 9, 1, 9, 1, 9, 1, 1, 9, 1, 9,1, 1, 1, 9, 9, 9, usw.

Hast Du oder jemand anderes hier noch einen Tipp, Anregung, Lösung für mich?

Vielen Dank im Voraus und viele Grüße

Andi Volkert

Claus Busch

unread,
Dec 11, 2014, 3:06:41 PM12/11/14
to
Hallo,

Am Thu, 11 Dec 2014 12:01:59 -0800 (PST) schrieb
computrai...@gmail.com:

> Was ich jetzt noch bräuchte wäre die Möglichkeit, die Spalten beim Einlesen auch noch zu vertauschen, weil das Ausgabeergebnis leider eine andere Anordnung der Spalten benötigt.

du kannst die Spalten nach dem Import verschieben und auch dieses
Vorgehen aufzeichnen. Klicke in den Spaltenkopf damit die entsprechende
Spalte markiert ist und ziehe sie dann mit gedrückter Shift-Taste an die
passende Stelle.
0 new messages