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-ID: 45987

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

Ausgedruckt am: 05.11.2024 um 07:11 Uhr

8644
8644 04.12.2006 um 15:37:41 Uhr
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
eu-admin
eu-admin 04.12.2006 um 16:14:21 Uhr
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
8644
8644 04.12.2006 um 16:32:29 Uhr
Goto Top
Du meinst, dass deine Textdatei mehr Spalten hat, als Excel zulässt?

Psycho
Biber
Biber 04.12.2006 um 16:33:32 Uhr
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
Biber
Biber 04.12.2006 um 19:13:21 Uhr
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