Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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

Importieren von Daten (.mpt) Problem Zahlenformat

Importieren von Daten (.mpt) Problem Zahlenformat
11.05.2016 16:25:03
Daten
Hallo,
ich bin gerade dabei ein Makro zu schreiben, mit dem man Daten von einer Messsoftware (aus mehreren Dateien) in Excel importieren kann.
Es handelt sich dabei um mpt Dateien, was eine Art tab-separierte Textdatei ist, wenn ich es richtig verstanden habe. Ich kann diese Dateien jedenfalls problemlos mit Excel öffnen und die Daten erscheinen auch getrennt in Reihen und Spalten im richtigen Format.
Nur wenn ich mein Skript zum Importieren benutze, zerhäckselt es mir das Datenformat :(
Zb wird aus 2,92E+00 durch mein skript 2,92E+07
Irgendwie ist alles um 7 Größenordnungen zu hoch :/
Anscheinend gibt es ein Problem mit der wissenschaftl Notation der Daten, denn Zahlen wie 1 oder 3 (also ohne Exponent) werden richtig übernommen.
Der entsprechende Code sieht so aus:
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="MPT Files (*.mpt), *.mpt", _
MultiSelect:=True, Title:="Data Files to Open")
If TypeName(FilesToOpen) = "Boolean" Then
MsgBox "No Files were selected"
GoTo ExitHandler
End If
x = 1
Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
wkbTemp.Sheets(1).Copy
path = wkbTemp.path 'path to files selected in dialog box
Set wkbAll = ActiveWorkbook
wkbTemp.Close (False)
x = x + 1
While x <= UBound(FilesToOpen)
Set wkbTemp = Workbooks.Open(Filename:=FilesToOpen(x))
With wkbAll
wkbTemp.Sheets(1).Move after:=.Sheets(.Sheets.Count)
End With
x = x + 1
Wend
Hat jemand eine Ahnung wie ich das Problem lösen könnte? Ich will ungern alles umrechnen, da es sich schon um recht viele Daten handelt.
Vielen Dank,
Clemens

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

Betreff
Datum
Anwender
Anzeige
AW: Importieren von Daten (.mpt) Problem Zahlenformat
11.05.2016 17:01:00
Daten
Hallo Clemens,
ich würde die *.mtp-Datei nicht mit 'Workbooks.Open(...)' öffnen, das diesee kein Stamdardtyp für Excel ist (laut Vba-Hilfe: Öffnet eine Arbeitsmappe).
Für sowas gibt es doch 'QueryTables.Add(...)' - Da kann man verschiedene Parameter angeben.
Gruß von Luschi
aus klein-Paris

AW: Importieren von Daten (.mpt) Problem Zahlenformat
11.05.2016 18:12:43
Daten
Hallo Luschi,
danke, damit funktioniert es tatsächlich:
Sub Import()
Dim Str1 As String
Dim i As Integer
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Filters.Clear
.Filters.Add "mpt files (*.mpt)", "*.mpt"
.Filters.Add "all files (*.*)", "*.*"
.Show
If .SelectedItems.Count > 0 Then
For i = 1 To .SelectedItems.Count
If Worksheets.Count Worksheets.Add After:=Worksheets(i - 1)
End If
Worksheets(i).Activate
Str1 = "TEXT;" & .SelectedItems.Item(i)
With ActiveSheet.QueryTables.Add(Connection:=Str1, Destination:=Range("A1"))
.TextFileSemicolonDelimiter = True
.Refresh BackgroundQuery:=False
End With
Next
End If
End With
End Sub
frei nach:

https://bytes.com/topic/visual-basic/answers/655253-import-multiple-csv-files-excel-semi-colon-delimiter
(modifiziert)
Jetzt will ich nur noch, dass die einzelnen Sheets so wie die Dateien heißen, aus denen die Daten jeweils importiert wurden. Kann mir jemand sagen, wie ich das in den Code eingebaut bekomme?
Sorry, bin VBA Anfänger :(
Gruß, Clemens

Anzeige
AW: Importieren von Daten (.mpt) Problem Zahlenformat
11.05.2016 18:52:28
Daten
Hallo Clemens,
benutze dafür ein Worksheet-Obnjekt:

Dim ws As Worksheet
Dim j1 As Integer, j2 As Integer, s As String
Set ws = Worksheets.Add(After:=Worksheets(i - 1))
'weiterer Vba-Code und dann
'letztes '\'-Zeichen im Pfad + Dateiname ermitteln
j1 = InStrRev(SelectedItems.Item(i), "\", -1, vbTextCompare)
'Dateiname ohne Pfad
s = Mid(SelectedItems.Item(i), j1 + 1)
'letzten Punkt im Dateinamen
j2 = InStrRev(s, ".", -1, vbTextCompare)
s = Left(s, j2 - 1)
ws.Name = s
' und jetzt statt ActiveSheet ws einsetzen
' ganz zum Schluß!
Set ws = Nothing
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Importieren von Daten (.mpt) Problem Zahlenformat
12.05.2016 15:42:41
Daten
Hi,
vielen Dank! Habe gerade leider keine Zeit es auszuprobieren, aber melde mich sobald ich dazu gekommen bin.
Gruß, Clemens

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige