Thema Datum  Von Nutzer Rating
Antwort
Rot .csv Datei in Excel imoptieren
04.06.2008 06:32:58 Falk
NotSolved
04.06.2008 23:08:21 jh
NotSolved
05.06.2008 06:17:59 Falk
NotSolved
08.02.2017 11:42:00 +
Solved

Ansicht des Beitrags:
Von:
Falk
Datum:
04.06.2008 06:32:58
Views:
2134
Rating: Antwort:
  Ja
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

Ihre Antwort
  • 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: Name: Email:



  • 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
Rot .csv Datei in Excel imoptieren
04.06.2008 06:32:58 Falk
NotSolved
04.06.2008 23:08:21 jh
NotSolved
05.06.2008 06:17:59 Falk
NotSolved
08.02.2017 11:42:00 +
Solved