eu-admin
Goto Top

Spaltenweiser Import von Daten

txt-Datei soll in Excel importiert werden - Aber nicht Zeile in Zeile sondern Zeile in Spalte

Hallo,

ich habe eine txt-Datei, die ich in Excel importieren möchte. Dabei möchte ich aber den Inhalt der Zeilen nicht in Zeilen importieren, sondern in Spalten.

also soll das so aussehen

txt-Datei:

1;2;3;4;5|
a;b;c;d;e|

Excel:
1 a
2 b
3 c
4 d
5 e

Kann mir da jemand weiterhelfen?

Vielen Dank

Christian

Content-Key: 45987

Url: https://administrator.de/contentid/45987

Printed on: April 19, 2024 at 01:04 o'clock

Mitglied: 8644
8644 Dec 04, 2006 at 14:37:41 (UTC)
Goto Top
Hi,

versuchs mal so:

Die Daten normal importieren, dann die ganze Tabelle markieren ([Strg] + [Shift] + [Ende]), dann in ein anderes Tabellenblatt wechseln, Menü Bearbeiten -> Inhalte einfügen -> Haken bei Transponieren setzen -> OK.

Psycho
Member: eu-admin
eu-admin Dec 04, 2006 at 15:14:21 (UTC)
Goto Top
Moin Psycho,

Vielen Dank für die prompte Antwort.
Ich habe leider ein kleines aber wichtiges Detail vergessen.
Die Spalten reichen für den ersten Import nicht aus.
Hast du da eventuell auch eine Lösung.

Vielen Dank

Christian
Mitglied: 8644
8644 Dec 04, 2006 at 15:32:29 (UTC)
Goto Top
Du meinst, dass deine Textdatei mehr Spalten hat, als Excel zulässt?

Psycho
Member: Biber
Biber Dec 04, 2006 at 15:33:32 (UTC)
Goto Top
Moin eu_admin,

von was für einem Datenvolumen reden wir denn?
Das einfachste, wenn kein zusätzlicher Zwischenschritt einer Konvertierung in eine andere Import_transformiert.csv stattfinden soll, einen Makro drüberlaufen zu lassen.

Gruß
Biber
Member: Biber
Biber Dec 04, 2006 at 18:13:21 (UTC)
Goto Top
Moin eu_admin,

folgenden (ausreichenden) Schnipsel hab ich auf www.office-loesung.de gefunden.

Da sich der Autor sich offensichtlich mit Zeilen und Spalten vertan hat, passt das ohne Änderungen.
[Okay - den Delimiter auf ";" und eigentlich den Dateityp auf *.txt..aber das war's.]

Option Explicit 

Sub Lesen() 
   Dim FileName As Variant    ' der Dateiname oder FALSE   
   Dim Handle As Integer      ' Dateinummer (FileHandle)   
   Dim strOneLine As String   ' eine (lange) Zeile als String   
   Dim arOneLine() As String  ' diese Zeile in (viele) Felder zerlegt   
   Dim lngZeile As Long       ' Zeilenzähler   
   Dim intSpalte As Integer   ' Spaltenzähler   
    
   FileName = Application.GetOpenFilename("CSV-Dateien,*.csv,Alle Dateien,*.*", , "Datei öffnen")   
   If FileName = False Then Exit Sub 
    
   intSpalte = 1 
   Handle = FreeFile 
   Open FileName For Input As #Handle 
   While Not EOF(Handle) 
      Line Input #Handle, strOneLine 
      arOneLine = Split(strOneLine, ";")   ' Delimiter changed to ";" from "|". Biber   
      For lngZeile = 0 To UBound(arOneLine) - 1 
         Cells(lngZeile + 1, intSpalte) = arOneLine(lngZeile) 
      Next 
      intSpalte = intSpalte + 1 
      If intSpalte > Columns.Count Then 
         Worksheets.Add after:=ActiveSheet 
         intSpalte = 1 
      End If 
   Wend 
   Close #Handle 
End Sub 

HTH Biber