Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
.csv Datei in Excel imoptieren |
04.06.2008 06:32:58 |
Falk |
|
|
|
04.06.2008 23:08:21 |
jh |
|
|
|
05.06.2008 06:17:59 |
Falk |
|
|
|
08.02.2017 11:42:00 |
+ |
|
|
Von:
Falk |
Datum:
04.06.2008 06:32:58 |
Views:
2134 |
Rating:
|
Antwort:
|
Thema:
.csv Datei in Excel imoptieren |
Hallo,
ich habe folgendes Problem, bei dem ich Hilfe brauche, da ich noch keine sehr grossen VBA Kenntnisse habe.
Ich habe ein Auswertedatei in Excel, die ich mit Daten füttern will, die als .csv Datei vorliegen. Ich habe hier auch schon ein Programm (was ich aus einen Forum kopiert habe), das dies macht, aber sehr sehr langsam ist und die Daten werden als Text gespeicherte Zahlen gekennzeichnet.
Nun meine Frage:
1. Wie muss mein Programm ändern, dass das importieren der .csv Dateien schneller geht. Ich muss hier mehrere einlesen mit mind. 50Zeilen und kann/will nicht immer über 30sec/Datei warten.
2. Wie muss der Einlesefilter geändert werden, das ich Zahlen (ohne Meldung "als Text gespeicherte Zahl") in meinen Zellen stehen habe, ich kann sonst nicht mit den Werten arbeiten.
Danke für jede Hilfe.
Gruss Falk
Sub LiesCSV()
'Variablen
Dim neudatei
Dim newsheet
' Tabellennamen abfragen
tabellenname = InputBox("Für welche Temperatur (30°C, , 60°C 90°C oder 120°C) wollen Sie Daten einfügen?", "Temperatur")
If tabellenname = 30 Or tabellenname = 60 Or tabellenname = 90 Or tabellenname = 120 Then
Else: tabellenname = InputBox("Bitte nur 30°C, 60°C, 90°C oder 120°C eingeben!", "Temperatur")
End If
'If tabellenname = "30" Or tabellenname = "60" Or tabellenname = "90" Or tabellenname = "120" Then
'tabellenname = tabellenname + "°C"
'End If
Debug.Print tabellenname
'Datei öffnen
neudatei = Application.GetOpenFilename(filefilter:="Textdateien (*.csv), *.csv")
If neudatei = False Then Exit Sub
' Neue Tabelle anlegen mit Name = Tabellenname
'Set newsheet = Worksheets.Add
'newsheet.Name = tabellenname
' LeseFunktion aufrufen
ReadfromCSVSimple CStr(neudatei)
End Sub
'
' Öffnet eine CSV-Datei und liest sie in die aktuelle Tabelle ab Zeile 1 Spalte 1
'
' fName = Dateiname & Pfad
' FS = das Spaltentrennzeichen (Field Seperator), im Deutschen ein Semikolon
'
Sub ReadfromCSVSimple(fname As String, Optional FS As String = ";")
Dim hfile As String ' Filehandle bzw. Dateinummer
Dim i As Long ' Zähler über alle Zeilen
Dim j As Integer ' Zähler über alle Spalten
Dim OneLine As String ' Eine Zeile als String
Dim myArr As Variant ' eine Zeile in Felder getrennt
hfile = tabellenname
Open fname For Input As #hfile
While Not EOF(hfile)
i = i + 1
Line Input #hfile, OneLine
myArr = Split(OneLine, FS)
For j = 0 To UBound(myArr)
Cells(i, 2 + j).NumberFormat = "general" 'oder "0.00"
Cells(i, 2 + j).Value = myArr(j)
Next
Wend
Close #hfile
End Sub
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
.csv Datei in Excel imoptieren |
04.06.2008 06:32:58 |
Falk |
|
|
|
04.06.2008 23:08:21 |
jh |
|
|
|
05.06.2008 06:17:59 |
Falk |
|
|
|
08.02.2017 11:42:00 |
+ |
|
|