Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
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
Inhaltsverzeichnis

Datei einlesen

Datei einlesen
Joachim
Hallo
Meine Frage von 15:38 Uhr ist immer noch offen.
Habe mal meine Datei hoch geladen.
https://www.herber.de/bbs/user/80293.xls
Der obere Bereich ist das was eingelesen wurde, der untere Bereich die Originaldatei.
Wenn noch jemand eine Idee hat, ich würde mich sehr freuen.
Gruß Joachim

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

Betreff
Benutzer
Anzeige
AW: Datei einlesen
25.05.2012 08:01:33
Frank
Hallo Joachim,
hast Du mal versucht die Tausendertrennzeichen zu entfernen?
In deiner Datei die Spalte I
NumberFormat = "0"
Gruß Frank
AW: Datei einlesen
25.05.2012 17:04:05
Joachim
Hallo Frank
Hab ich auch schon ohne Erfolg versucht
Mittlerweile bin ich mir ziemlich sicher, dass die Quelldatei wohl ursprünglich eine .txt Datei war, die in eine .xls umbenannt wurde.
Im habe im Forum was mit "OpenText-Methode" und GetOpenFilename gefunden, bekomme es aber leider nicht in mein Makro umgesetzt (dank fehlender VBA-Kenntnisse). Bin noch am probieren.
Dank für deine Antwort
Gruß Joachim
AW: Datei einlesen
25.05.2012 21:12:35
fcs
Hallo Joachim,
wenn deine xls-Dateien wirklich "verkappte" Text-Dateien sind, dann dann probiere es mal mit einer der folgenden Varianten deines Makros. Den Dilimiter (Trennzeichen zwischen den Spalten) muss du ggf. anpassen. Siehe hierzu die VBA-Hlfe zu Workbooks.Open/Workbooks.OpenText.
Ob die xls-Dateien in Wirklichkeit Textdateien sind kannst du einfach feststellen, indem du eine der Dateien in einem Text-Editor öffnest.
Gruß
Franz
Sub aktualisieren()
Application.ScreenUpdating = False
On Error Resume Next
Dim sFile As String, n As Integer, wkb As Workbook, arrFiles, iFiles As Integer
Const sPfad As String = "i:\Excel\Firma\Forecast\test\"
arrFiles = Array("karl bereit*.xls", "simm bereit*.xls")
For iFiles = 0 To UBound(arrFiles)
sFile = Dir(sPfad & arrFiles(iFiles))
Do While sFile  ""
n = n + 1
Set wkb = Workbooks.Open(Filename:=sPfad & sFile, ReadOnly:=True, _
Format:=6, Delimiter:=";", Local:=True)
wkb.Sheets(1).Range("A1:O5000").Copy ThisWorkbook.Sheets(n).Range("A1")
wkb.Close False
sFile = Dir
Loop
Next
Application.ScreenUpdating = True
End Sub
Variante mit "OpenText

Sub aktualisieren_Variante()
Application.ScreenUpdating = False
On Error Resume Next
Dim sFile As String, n As Integer, wkb As Workbook, arrFiles, iFiles As Integer
Dim arrFieldInfo() As Integer, intSpalte As Integer
Const sPfad As String = "C:\Users\Public\Test\"
'       Const sPfad As String = "i:\Excel\Firma\Forecast\test\"
arrFiles = Array("karl bereit*.xls", "simm bereit*.xls")
'Daten-Array mit Informationen zum Format der einzulesenden Spalten erstellen
intSpalte = 15 'Anzahl der Spalten in Textdatei
ReDim arrFieldInfo(1 To intSpalte, 1 To 2)
For intSpalte = 1 To intSpalte
arrFieldInfo(intSpalte, 1) = intSpalte
Select Case intSpalte
Case 1 To 4, 7, 9, 12, 15
arrFieldInfo(intSpalte, 2) = 1        'Standard
Case 5, 8, 10, 11
arrFieldInfo(intSpalte, 2) = 2        'als Text einlesen
Case 999
arrFieldInfo(intSpalte, 2) = 3        'xlMDYFormat - z.B.: 8/22/2005
Case 6, 13, 14, 999
arrFieldInfo(intSpalte, 2) = 4        'xlDMYFormat - z.B.: 01.02.2000
Case 999
arrFieldInfo(intSpalte, 2) = 5        'xlYMDFormat - z.B.: 2001-02-01
Case 999
arrFieldInfo(intSpalte, 2) = 9        'nicht einlesen
Case Else
arrFieldInfo(intSpalte, 2) = 1        'Standard
End Select
Next
For iFiles = 0 To UBound(arrFiles)
sFile = Dir(sPfad & arrFiles(iFiles))
Do While sFile  ""
n = n + 1
Application.Workbooks.OpenText Filename:=sPfad & sFile, Origin:=xlWindows, _
Startrow:=1, DataType:=xlDelimited, Textqualifier:=xlTextQualifierDoubleQuote, _
consecutivedelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False, Otherchar:="", Fieldinfo:=arrFieldInfo(), _
DecimalSeparator:=",", ThousandsSeparator:=".", Local:=True
If ActiveWorkbook.Name  ThisWorkbook.Name Then
Set wkb = ActiveWorkbook
wkb.Sheets(1).Range("A1:O5000").Copy ThisWorkbook.Sheets(n).Range("A1")
wkb.Close False
End If
sFile = Dir
Loop
Next
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Datei einlesen
27.05.2012 08:47:36
Joachim
Hallo Franz
Entschuldige bitte die späte Antwort, dachte nicht das sich noch einer meldet und war auch eine Zeit lang nicht am PC.
Ich habe ja geschrieben das ich noch am probieren bin, und siehe da man glaubt es kaum kurze Zeit später hat es mit der "OpenText-Methode" funktioniert (siehe unten).
Sub aktualisieren()
Application.ScreenUpdating = False
On Error Resume Next
Dim sFile As String, n As Integer, wkb As Workbook, arrFiles, iFiles As Integer
Const sPfad As String = "i:\Excel\Firma\Forecast\test\"
arrFiles = Array("simm bereit*.xls", "karl bereit*.xls")
For iFiles = 0 To UBound(arrFiles)
sFile = Dir(sPfad & arrFiles(iFiles))
Do While sFile  ""
n = n + 1
Workbooks.OpenText (sPfad & sFile)
ActiveWorkbook.Sheets(1).Range("A1:O5000").Copy ThisWorkbook.Sheets(n).Range("A1")
ActiveWorkbook.Close False
sFile = Dir
Loop
Next
Application.ScreenUpdating = True
End Sub

Ich danke dir sehr für deine Mühe, und wünsche dir einen schönen Feiertag.
Und ja es ist eine Textdatei. Wenn ich sie mit dem Editor öffne steht alles schön in Reih und Glied.
Gruß Joachim
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige