Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
464to468
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
464to468
464to468
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bestimmte Daten aus einer .txt Datei in Excel impo

Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Guten Morgen,
wer kann mir helfen? Folgendes Problem:
Ich habe eine Textdatei aus der unterschiedliche Daten aus einer bestimmten Zeile in die Excel Datei in festgelegte Zellen übernommen werden sollen.
Bsp.:
Zeile 1: A
Zeile 2: B
Zeile 3: C 45 C
Zeile 4: 12 45 65 A
Wie bekomme ich nun die Daten aus Zeile 4 der Textdatei in bestimmte Zellen meiner Excel Tabelle?
Vielen Dank ...

41
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Ulf
Daten|Text in Spalten.
Ulf
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Das ist leider nicht mein Problem ...
wenn ich die Textdatei importiert habe möchte ich das Excel bestimmte Daten (siehe Beispiel) in eine vorhandene Tabelle einträgt ...
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Hendrik
Hat die Textdatei immer das gleiche Format?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Bis auf die ersten Zeilen hat die Textdatei im folgenden immer das selbe Format.
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
Beispiel:


Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String
    Reset
    intFile = FreeFile
    Open "D:\Eigene Dateien\Eigene Tabellen\Excelbeispiele1.txt" For Input As #intFile
    Do Until EOF(intFile)
        lngZeile = lngZeile + 1
        Input #intFile, strText
        If lngZeile = 4 Then Exit Do
    Loop
    Close #intFile
    Cells(1, 1) = strText
End Sub


Gruß
Nepumuk
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Kenne mich mit VB nicht so gut aus, wo muss ich jetzt reinschreiben das zum Bsp. die Zeile 4 in die Excel Tabelle "Tabelle1" Zeile 10 übernommen werden soll?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
schreib an Stelle von:
Cells(1, 1) = strText
einfach für Zelle A10:
WorkSheets("Tabelle1").Range("A10") = strText
Gruß
Nepumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Den letzten Teil habe ich versanden, aber wo muss ich jetzt eintragen das der den Wert aus der 4 Zeile der Textdatei übernehmen soll?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
dafür ist der Zähler lngZeile. Die Textdatei wird bis zur Zeile 4 gelesen, dann wird die Schleife verlassen und der Wert von Zeile 4 der Textdatei der in der Variablen strText steht in die Zelle eingetragen. Direktes lesen der Zeile 4 geht nur, wenn die Textdatei mit der Put - Anweisung geschrieben wurde.
Gruß
Nepumuk
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Hendrik
Ich bevorzuge grundsätzlich den Import von .txt-Dateien über "getrennt" oder "feste Breite" mit entsprechender Parameterdefinition und dem Löschen der Datei nach dem Import- und Auslesevorgang.
Just my 2 cents.
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
danke =) kann man das auch für mehrere in einem makro ausführen?
also das gleich nur für Tabelle 1, Zeile 4 dann für Tabelle 2, Zeile 4 usw. ?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
dann so:


Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String, myWorksheet As Worksheet
    Reset
    intFile = FreeFile
    Open "D:\Eigene Dateien\Eigene Tabellen\Excelbeispiele1.txt" For Input As #intFile
    Do Until EOF(intFile)
        lngZeile = lngZeile + 1
        Input #intFile, strText
        If lngZeile = 4 Then Exit Do
    Loop
    Close #intFile
    For Each myWorksheet In Worksheets
        myWorksheet.Range("A10") = strText
    Next
End Sub


Gruß
Nepumuk
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
habe mich ausversehen vertan ... es handelt sich zum bsp. um tabelle 1, zeile 4 aus der txt, dann um tabelle 3, zeile 8 aus der txt usw. ... ausserdem übernimmt excel die zahlen aus der txt in eine zelle und nicht in 6 da es mehrer also 6 zahlen sind ... geht das?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
ich warte jetzt noch ein bisschen, bis dir alles eingefallen ist, was das Makro noch alles machen soll. Ich habe nämlich keine Lust es noch dreimal umzuschreiben.
Gruß
Nepumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
die Aufteilung der Zeilen aus der .txt erfolgt so:


Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String
    Reset
    intFile = FreeFile
    Open "D:\Eigene Dateien\Eigene Tabellen\Excelbeispiele1.txt" For Input As #intFile
    Do Until EOF(intFile)
        lngZeile = lngZeile + 1
        Input #intFile, strText
        Select Case lngZeile
            Case 4: Worksheets("Tabelle1").Cells(1, 10).Value = strText
            Case 8: Worksheets("Tabelle2").Cells(1, 10).Value = strText
        End Select
    Loop
    Close #intFile
End Sub


Außerdem benötige ich für diesen Satz eine nähere Erleuterung:
ausserdem übernimmt excel die zahlen aus der txt in eine zelle und nicht in 6 da es mehrer also 6 zahlen sind ... geht das?
Soll denn jede einzelne Ziffer in eine eigene Zelle? Gib mir mal eine Beispielzeile aus er .txt und wie diese auf welche Zelle aufgeteilt werden muss.
Gruß
Nepumuk
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
So sieht die txt Datei aus:
--- Beginn der Verarbeitung von A ---
xxx
xxx
xxx
xxx
xxx
4869874 849 5449 5461 654469 10
--- Ende der Verarbeitung von A ---
--- Beginn der Verarbeitung von B ---
xxx
xxx
xxx
xxx
xxx
574786 56498 5166 564 5156 516
--- Ende der Verarbeitung von B ---
Nun sollen aus Verabeitung A die Zahlen in die Tabelle A übernommen werden (jede einzelnde Zahl in eine Zelle), die Zahlen aus Verarbeitung B in die Tabelle B ... das ganze soll dann jeden Tag passieren, die txt Datei ist datumsbezogen benannt. (Bsp.: L040805).
Vielen Dank @ Nepumuk :)
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
das ist kein Problem. Noch ein paar Fragen:
1. Sind die Textdateien immer identisch aufgebaut?
2. Sind es immer gleich viele Verarbeitungsschritte?
3. Willst du das Datum eingeben, oder soll ich es mit dem Tagesdatum fest in das Programm einbauen?
4. Sollen die Zahlen immer in die sebe Zeile oder an eine Liste angefügt werden?
5. Wäre es dir möglich eine Mustermappe und eine Mustertextdatei in eine Zipfile zu packen und auf den Server zu laden, damit ich das realistisch testen kann?
Gruß
Nepumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Hallo.
1. ja (siehe Muster)
2. ja (siehe Muster)
3. es wäre schön wenn das programm sich jeden tag automatisch die aktuelle textdatei sucht ( Datum: 05.08.04 - Dateiname: L040805 ... jeden Tag so aufgebaut)
4. die Zahlen sollen passend zum Datum (siehe Muster) eingefügt werden
5. Muster Textdatei und Excel Tabelle: https://www.herber.de/bbs/user/9237.zip
Vielen Dank :)
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
da sich das Programm die Datei selbst suchen muss, ist es ein wenig aufwendiger geworden. Schneller ginge es, wenn die Textdateien immer im selben Ordner auf der selben Festplatte wären.


Option Explicit
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As LongAs Long
Private Const MAX_PATH = 260
Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100
Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
End Type
Private lngDirCount As Long
Private strFile As String
Private bolgefunden As Boolean
Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String, varArray As Variant, intIndex As Integer
    Dim intSheetindex As Integer, lngAusgabezeile As Long, myFSO As Object, myDrives As Object, myDrive As Object
    Set myFSO = CreateObject("Scripting.FileSystemObject")
    Set myDrives = myFSO.Drives
    For Each myDrive In myDrives
        If myDrive.IsReady Then
            lngDirCount = 1
            bolgefunden = False
            FindFiles myDrive.DriveLetter & ":\", "L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt"
            If bolgefunden Then Exit For
        End If
    Next
    If bolgefunden Then
        lngAusgabezeile = Worksheets("Tabelle A").Columns(1).Find(Date).Row
        Reset
        intFile = FreeFile
        Open strFile For Input As #intFile
        Do Until EOF(intFile)
            Input #intFile, strText
            lngZeile = lngZeile + 1
            If lngZeile - 6 > 0 And (lngZeile - 6) Mod 15 = 0 Then
                intSheetindex = intSheetindex + 1
                varArray = Split(strText, " ")
                For intIndex = 0 To UBound(varArray)
                    Worksheets("Tabelle " & Chr$(intSheetindex + 64)).Cells(lngAusgabezeile, intIndex + 2).Value = varArray(intIndex)
                Next
            End If
        Loop
        Close #intFile
    Else
        MsgBox "Die Datei L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt wurde nicht gefunden.", 48, "Hinweis"
    End If
End Sub
Private Sub FindFiles(ByVal strFolderPath As StringByVal strSearch As String)
    Dim WFD As WIN32_FIND_DATA, lngSearch As Long, strDirName As String
    If Right$(strFolderPath, 1) <> "\" Then strFolderPath = strFolderPath & "\"
    lngSearch = FindFirstFile(strFolderPath & "*.*", WFD)
    If lngSearch <> INVALID_HANDLE_VALUE Then
        GetFilesInFolder strFolderPath, strSearch
        Do
            If (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) Then
                strDirName = TrimNulls(WFD.cFileName)
                If (strDirName <> ".") And (strDirName <> "..") Then
                    lngDirCount = lngDirCount + 1
                    FindFiles strFolderPath & strDirName, strSearch
                End If
            End If
        Loop While FindNextFile(lngSearch, WFD)
        FindClose lngSearch
    End If
End Sub
Private Sub GetFilesInFolder(ByVal strFolderPath As StringByVal strSearch As String)
    Dim WFD As WIN32_FIND_DATA, lngSearch As Long, strFileName As String
    If Right$(strFolderPath, 1) <> "\" Then strFolderPath = strFolderPath & "\"
    lngSearch = FindFirstFile(strFolderPath & strSearch, WFD)
    If lngSearch <> INVALID_HANDLE_VALUE Then
        Do
            If (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) <> FILE_ATTRIBUTE_DIRECTORY Then
                strFileName = TrimNulls(WFD.cFileName)
                strFile = strFolderPath & strFileName
                bolgefunden = True
                Exit Sub
            End If
        Loop While FindNextFile(lngSearch, WFD)
        FindClose lngSearch
    End If
End Sub
Private Function TrimNulls(ByVal strStringIn As StringAs String
    If InStr(strStringIn, Chr(0)) > 0 Then strStringIn = Left$(strStringIn, InStr(strStringIn, Chr(0)) - 1)
    TrimNulls = strStringIn
End Function


Gruß
Nepumuk
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Die Textdatei liegt immer im selben Ordner auf der Festplatte, muss ich jetzt also noch was ändern?
Vielen Dank nochmal...
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
warum dann dieser Satz?
"es wäre schön wenn das programm sich jeden tag automatisch die aktuelle textdatei sucht"
Dann kannst du 80% des Programms vergessen und ich habe mal wieder für der Papiekorb gearbeitet. Danke.
Also, wo liegt der Ordner? (Laufwerk:/Odner/Unterordner...) Alleine bekommst du das sicher nicht hin.
Gruß
Nepumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Das tut mir leid, mir wurde gesagt es soll mit Suchfunktion sein, daher dieser Wunsch. Das hat sich ja dann mittlerweile leider wieder geändert ...
C:\Marketing\Lieferung\
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
jetzt aber:


Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String, varArray As Variant, intIndex As Integer
    Dim intSheetindex As Integer, lngAusgabezeile As Long
    On Error GoTo Fehlerausgang
    lngAusgabezeile = Worksheets("Tabelle A").Columns(1).Find(Date).Row
    If lngAusgabezeile = 0 Then Err.Raise 513
    Reset
    intFile = FreeFile
    Open "C:\Marketing\Lieferung\L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt" For Input As #intFile
    Do Until EOF(intFile)
        Input #intFile, strText
        lngZeile = lngZeile + 1
        If lngZeile - 6 > 0 And (lngZeile - 6) Mod 15 = 0 Then
            intSheetindex = intSheetindex + 1
            varArray = Split(strText, " ")
            For intIndex = 0 To UBound(varArray)
                Worksheets("Tabelle " & Chr$(intSheetindex + 64)).Cells(lngAusgabezeile, intIndex + 2).Value = varArray(intIndex)
            Next
            varArray = Empty
        End If
    Loop
    Close #intFile
    Exit Sub
Fehlerausgang:
    Reset
    Select Case Err.Number
        Case 76: MsgBox "Die Datei L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 513: MsgBox "Das Datum " & CStr(Date) & " ist nicht in der Tabelle.", 16, "Fehlermeldung"
        Case Else: MsgBox "Fehler " & CStr(Err.Number) & vbLf & Err.Description, 16, "Fehlermeldung"
    End Select
End Sub


Nicht überrascht sein, das geht rasend schnell!
Gruß
Nepumuk
Anzeige
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Fehler 53 Datei nicht gefunden ... die Datei liegt aber 100% in diesem Ordner
Wo könnte der Fehler liegen?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
Pfadnamen im Programm falsch geschrieben (habe ich aber kopiert)? Leerzeichen im Ordnernamen ? Leerzeichen im Dateinamen? Ohne an deinem Rechner zu sitzen, schwer zu sagen.
Ich habe noch mal die Fehlermeldungen ergänzt:


    Select Case Err.Number
        Case 53: MsgBox "Die Datei L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 76: MsgBox "Der Pfad zur Datei wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 513: MsgBox "Das Datum " & CStr(Date) & " ist nicht in der Tabelle.", 16, "Fehlermeldung"
        Case Else: MsgBox "Fehler " & CStr(Err.Number) & vbLf & Err.Description, 16, "Fehlermeldung"
    End Select


Gruß
Nepumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Die Datei wird mittlerweile anscheinend gefunden, jedoch kommt jetzt:
Fehler 9 Index ausserhalb des gültigen Bereichs
Womit kann das zusammenhängen?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Kann das damit zusammen hängen das die Arbeitsmappe mehrere Tabellen enthält?
Die Tabellen gehen von Tabelle A bis Tabelle Z und zwischendurch kommt noch Tabelle A Diagramm, das auch wieder bis Z ... die txt Datei enthält auch alles bis Z ... hoffe das war keine wichtige Info die von Anfang an hätte das sein müssen ... :-/
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
Tabellennamen sind eindeutig. Sprich, du kannst einen Namen nur einmal vergeben. Hier kann ich auch nur auf zusätzliche Leerzeichen im Tabellennamen tippen. Was noch sein könnte, ist, dass nach der letzten Zahlenkolonne in der Textdatei noch mindestens 15 Zeilen kommen. Das müsste dann separat abgefangen werden.
Gruß
Nepumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Nach Ende der letzte Zahlenkolone sprich der letzten Verarbeitung kommen noch cxa. 39 Zeilen die ich aber für die Tabelle nicht benötige, kann es daran liegen?
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
das ist es. Also, dann so:


Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String, varArray As Variant, intIndex As Integer
    Dim intSheetindex As Integer, lngAusgabezeile As Long
    On Error GoTo Fehlerausgang
    lngAusgabezeile = Worksheets("Tabelle A").Columns(1).Find(Date).Row
    If lngAusgabezeile = 0 Then Err.Raise 513
    Reset
    intFile = FreeFile
    Open "C:\Marketing\Lieferung\L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt" For Input As #intFile
    Do Until EOF(intFile)
        Input #intFile, strText
        lngZeile = lngZeile + 1
        If lngZeile - 6 > 0 And (lngZeile - 6) Mod 15 = 0 Then
            intSheetindex = intSheetindex + 1
            varArray = Split(strText, " ")
            For intIndex = 0 To UBound(varArray)
                Worksheets("Tabelle " & Chr$(intSheetindex + 64)).Cells(lngAusgabezeile, intIndex + 2).Value = varArray(intIndex)
            Next
            varArray = Empty
        End If
        If intSheetindex = 26 Then Exit Do
    Loop
    Close #intFile
    Exit Sub
Fehlerausgang:
    Reset
    Select Case Err.Number
        Case 53: MsgBox "Die Datei L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 76: MsgBox "Der Pfad zur Datei wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 513: MsgBox "Das Datum " & CStr(Date) & " ist nicht in der Tabelle.", 16, "Fehlermeldung"
        Case Else: MsgBox "Fehler " & CStr(Err.Number) & vbLf & Err.Description, 16, "Fehlermeldung"
    End Select
End Sub


Schwere Geburt.
Gruß
Nepumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Nepumuk
Hallo Markus,
kleine Änderung in der Fehlerroutine:


Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String, varArray As Variant, intIndex As Integer
    Dim intSheetindex As Integer, lngAusgabezeile As Long
    On Error Resume Next
    lngAusgabezeile = Worksheets("Tabelle A").Columns(1).Find(Date).Row
    On Error GoTo Fehlerausgang
    If lngAusgabezeile = 0 Then Err.Number = 513: GoTo Fehlerausgang
    Reset
    intFile = FreeFile
    Open "C:\Marketing\Lieferung\L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt" For Input As #intFile
    Do Until EOF(intFile)
        Input #intFile, strText
        lngZeile = lngZeile + 1
        If lngZeile - 6 > 0 And (lngZeile - 6) Mod 15 = 0 Then
            intSheetindex = intSheetindex + 1
            varArray = Split(strText, " ")
            For intIndex = 0 To UBound(varArray)
                Worksheets("Tabelle " & Chr$(intSheetindex + 64)).Cells(lngAusgabezeile, intIndex + 2).Value = varArray(intIndex)
            Next
            varArray = Empty
        End If
        If intSheetindex = 26 Then Exit Do
    Loop
    Close #intFile
    Exit Sub
Fehlerausgang:
    Reset
    Select Case Err.Number
        Case 53: MsgBox "Die Datei L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 76: MsgBox "Der Pfad zur Datei wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 513: MsgBox "Das Datum " & CStr(Date) & " ist nicht in der Tabelle.", 16, "Fehlermeldung"
        Case Else: MsgBox "Fehler " & CStr(Err.Number) & vbLf & Err.Description, 16, "Fehlermeldung"
    End Select
End Sub


Ich hoffe, das wars.
Gruß
Neüpumuk
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Markus
Danke für die Mühe, leider geht es immer noch nicht so ganz, es werden verschiedene Texte eingefügt und nicht immer die Zahlenreihe ... anscheinend ist die Textdatei nicht genormt und hat mal eine Zeile mehr oder weniger ... gibt es da die Möglichkeit das das Skript in der Textdatei nach der Stelle "Beginn Verarbeitung A" sucht und dann die vorletzte Zeile also die Zahlen nimmt? Davor sind wie gesagt mal mehr oder weniger Zeilen in jedem Verarbeitungschritt ...
Oder ist es einfacher nach dem Ende zu suchen? "Ende der Verarbeitung A" weil die Zahlen immer (diesesmal ausnahmweise) in der Zeile davor stehen?
Vielen Dank und ein schönes Wochenende =)
AW: Import
Nepumuk
Hallo Markus,


Public Sub Importieren()
    Dim lngZeile As Long, intFile As Integer, strText As String, varArray As Variant, intIndex As Integer
    Dim lngAusgabezeile As Long, strArray() As String, lngIndex As Long
    On Error Resume Next
    lngAusgabezeile = Worksheets("Tabelle A").Columns(1).Find(Date).Row
    On Error GoTo Fehlerausgang
    If lngAusgabezeile = 0 Then Error (513)
    Reset
    intFile = FreeFile
    Open "C:\Marketing\Lieferung\L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt" For Input As #intFile
    Do Until EOF(intFile)
        Input #intFile, strText
        lngZeile = lngZeile + 1
        ReDim Preserve strArray(1 To lngZeile)
        strArray(lngZeile) = strText
    Loop
    Close #intFile
    For lngIndex = 1 To lngZeile
        If InStr(1, strArray(lngIndex), "Ende der Verarbeitung") <> 0 Then
            varArray = Split(strArray(lngIndex - 1), " ")
            For intIndex = 0 To UBound(varArray)
                Worksheets("Tabelle " & Mid$(strArray(lngIndex), 32, 1)).Cells(lngAusgabezeile, intIndex + 2).Value = varArray(intIndex)
            Next
            varArray = Empty
        End If
    Next
    Exit Sub
Fehlerausgang:
    Reset
    Select Case Err.Number
        Case 53: MsgBox "Die Datei L" & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & ".txt wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 76: MsgBox "Der Pfad zur Datei wurde nicht gefunden.", 16, "Fehlermeldung"
        Case 513: MsgBox "Das Datum " & CStr(Date) & " ist nicht in der Tabelle.", 16, "Fehlermeldung"
        Case Else: MsgBox "Fehler " & CStr(Err.Number) & vbLf & Err.Description, 16, "Fehlermeldung"
    End Select
End Sub


Gruß
Nepumuk
AW: Import
Markus
Hallo,
leider kommt immer noch die Fehlermeldung 9 " Index außerhalb des gültigen Bereichs" oder wenn man Colums auf "ii" setzt kommt das Datum wurde nicht gefunden obwohl die schreibweise mit der in der Tabelle übereinstimmt.
Woran könnte das liegen?
Danke.
AW: Import
Nepumuk
Hallo Markus,
welche Zeile ist markiert (gelb unterlegt) wenn die Fehlermeldung kommt und du auf debuggen klickst?
Wo gibst du "ii" ein?
Nepumuk
AW: Import
Markus
Das "ii" kann man bei Colums einsetzen statt "1", dann kommt der Datumsfehler ... das Debuggen geht nicht wirklich bei der FM 9, da geht der dann jede einzelnde Zeile durch.
AW: Import
Nepumuk
und warum soll in Spalte ii nach der Datumszeile gesucht werden? Was ist FM 9 ?
Oooops, ich habe nicht daran gedacht, das Fhler abgefangen werden. Mch mal vor den Zeilen On Error ..... ein Hochkomma und lass es nochmal laufen. Dann soltest du in den Debugg-Modus gelangen, sobald der Fehler auftaucht.
AW: Import
Markus
Ahso, dann lass ich Colums auf 1 ...
Worksheets("Regio " & Mid$(strArray(lngIndex), 32, 1)).Cells(lngAusgabezeile, intIndex + 2).Value = varArray(intIndex)
Das wird im Debug Modus gelb makiert, die Tabelle "Regio " habe ich oben auch auf "Regio A" angepasst.
Dann kommt halt die FM 9 ... :-/
AW: Import
Nepumuk
dann ist die Textdatei nicht so aufgebaut wie dein Muster. Da auch die Tabellen andere Bezeichnungen haben, fühle ich mich ziemlich verarscht. Ich kenne dich nicht, ich kenne deine Firma, die anscheinend zu geizig ist, dir eine vernünftige Ausbildung zukommen zu lassen und für die ich unentgeltlich meine Freizeit opfere, nicht. Und du machst schon aus den Tabellennamen ein Firmengeheimnis. Auf solche Spielchen habe ich keine Lust.
ENDE.
AW: Import
Markus
Die Textdatei ist aufgebaut wie das Muster, die Bezeichnung muss ich aus Gründen des Datenschutzes ändern (was im Endeffekt ja wohl keine Rolle spielt) ... ich bin gerade am Anfang der Ausbildung und kenne mich mit VB halt nicht aus (was ich zum Glück auch nicht muss) bzw dank Ihrer Hilfe verstehe ich mittlerweile mehr davon als zuvor ...
AW: Bestimmte Daten aus einer .txt Datei in Excel impo
Hendrik
Dann müsstest Du nach dem Import aber doch auch Wissen, in welchen Bereichen welche Daten stehen und diese dann gezielt adressieren können!?!

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige