Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Line Input für Spalten

Line Input für Spalten
25.02.2008 17:36:00
Dirk
Hallo,
ich habe mehrere Tab delim txt mit 65 Spalten und ~55.000 Zeilen die vom Aufbau her gleich sind (gleich Parameter stehen in der gleichen Spalte). Von den 65 Spalten brauche ich aber nur etwa 5-10 aber die aus jeder Datei in eine einzige Tabelle. Über eine Listbox und Line Input wähle ich die Spalten aus die ich importieren will. Jede Datei zu importieren, die entsprechenden Spalten in eine neue Tabelle zu kopieren und die Datei wieder zu schließen dauert aber für mehrere Dateien recht lange. Gibt es eine Art Line Input auch für Spalten? Das scheint deutlich schneller zu sein als die Dateien zu importieren.
Besten Dank schonmal
Grüße
Dirk

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Line Input für Spalten
25.02.2008 17:46:00
Dieter
Hi,
Textdateien kennen keine Spalten.
mfg Dieter

AW: Line Input für Spalten
25.02.2008 20:29:43
Josef
Hallo Dirk,
probier mal.
Sub ReadTextfile()
Dim varFile As Variant, a As Variant, b() As Variant
Dim strTmp As String
Dim lngR As Long, n As Integer, i As Integer, c As Integer
On Error GoTo ErrExit
GMS

lngR = Application.Max(2, Cells(Rows.Count, 1).End(xlUp).Row)

varFile = Application.GetOpenFilename("Text Dateien (*.txt), *.txt", MultiSelect:=True)

If IsArray(varFile) Then
    For n = 1 To UBound(varFile)
        Open varFile(n) For Input As #1
        Do While Not EOF(1)
            c = 1
            Line Input #1, strTmp
            a = Split(strTmp, vbTab)
            For i = 0 To UBound(a)
                Select Case i + 1
                    Case 1, 3, 7, 8, 15, 35, 45, 46, 52 'die zu importierenden Spaltennummern - Anpassen!
                        Cells(lngR, c) = a(i)
                        c = c + 1
                    Case Else
                End Select
            Next
            lngR = lngR + 1
            If lngR > Rows.Count Then
                Close #1
                Err.Raise 1000, Description:="Zeilenanzahl zu groß!"
            End If
        Loop
        Close #1
    Next
End If

ErrExit:
GMS True
If Err.Number <> 0 Then
    MsgBox "Fehlernummer:" & vbTab & Err.Number & vbLf & _
        "Fehlerquelle:" & vbTab & Err.Source & vbLf & _
        "Beschreibung:" & vbTab & Err.Description & Space(25), _
        vbExclamation, "Fehler"
End If
Err.Clear

End Sub

Sub GMS(Optional ByVal Modus As Boolean = False)
Static lngCalc As Long

With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Modus Then
        .Calculation = IIf(lngCalc <> 0, lngCalc, xlCalculationAutomatic)
    Else
        lngCalc = .Calculation
        .Calculation = xlCalculationManual
    End If
    .Cursor = IIf(Modus, -4143, 2)
    .CutCopyMode = False
End With

End Sub


Gruß Sepp



Anzeige
AW: Line Input für Spalten
26.02.2008 17:28:00
Dirk
Hallo,
besten Dank. Ich werde das ausprobieren sobald ich wieder Zeit habe.
Grüße
Dirk

AW: Line Input für Spalten
28.02.2008 19:52:00
Dirk
Hallo Sepp,
danke, funktioniert super.
Grüße
Dirk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige