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

Werte nach Import keine Zahlen sondern Texte?

Werte nach Import keine Zahlen sondern Texte?
Kasimir
Hallo Leute,
ich benötige mal wieder Eure Hilfe. Ich lese Daten von CSV-Dateien ein. Nun werden diese Daten scheinbar als Text eingelesen. Zumindest werden diese alle linksbündig ausgerichtet. Zum besseren Verständnis habe ich mal einen Screenshot erzeugt und hier eingefügt.
Userbild
Klicke ich nun doppelt in die Zelle und verlasse diese gleich wieder über z.B. die Enter-Taste, wird aus dem Textinhalt eine Zahl, so wie es auch sein soll. Wie kann ich das nun irgendwie automatisieren, so dass ich z.B. über eine Schleife diese Umwandlung vollziehen kann?
Danke Euch schon mal für Eure Unterstützung,
Kasimir

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: falsch importiert?
15.02.2010 13:30:49
JOWE
Hallo Kasimir,
mit Hilfe des Importassistenten sollte das aber richtig funktionieren.
Siehe Online_Hilfe:
Importieren einer Textdatei
... Zeigen Sie im Menü Daten auf Externe Daten importieren...
... Folgen Sie den Anweisungen des Textkonvertierungs-Assistenten, um festzulegen, wie der Text in Spalten aufgeteilt werden soll...
...Klicken Sie im Dialogfeld Daten importieren auf Eigenschaften, um die Formatierungs- und Layoutoptionen für die importierten Daten festzulegen...
Gruß
Jochen
AW: falsch importiert?
15.02.2010 13:38:23
Kasimir
Hallo Jochen,
ich importiere die Daten aber nicht über den Importassistenten, sondern über einen VBA-Code. Die Passage meines Makros, dass die Daten ausließt sieht wie folgt aus:
'------------------------------------------------------------------------------------------------------------
'CSV-Datei auslesen
Set objFileSystem = CreateObject("scripting.filesystemobject")
Set objFolder = objFileSystem.getfolder(strPfad)
intFREE = FreeFile
lngRow = 2
Open strPfad & strDateien For Input As intFREE
Do Until EOF(intFREE)
Line Input #intFREE, strTextCSV
myArr = Split(strTextCSV, ";") 'Trennzeichen anpassen
With wksNewSheet
wksNewSheet.Range(wksNewSheet.Cells(lngRow, 1), _
wksNewSheet.Cells(lngRow, UBound(myArr) + 1)) = myArr
End With
lngRow = lngRow + 1
Loop
Close #intFREE
Ich nehme diese Variante, da hier auf jeden Fall das Semikolon als Trennzeichen verwendet wird, egal was ansonsten in den Ländereinstellungen eingestellt ist, da es damit auf verschiedenen Rechner, trotz richtiger Ländereinstellung , zu Problemen beim Trennzeichen kam.
Durch diese Importvariante sehen die Daten dann so aus, wie im Screenshot aus meiner Frage.
MfG,
Oliver
Anzeige
AW: falsch importiert?
15.02.2010 14:16:40
JOWE
Oliver,
evtl.so
Sub test()
Dim i As Long
Dim sh As Object
Set sh = ActiveSheet
For Each z In Range("A1:G25") 'anpassen
If InStr(1, z.Value, ".") > 0 Then
z.Value = Format(CVDate(z.Value), "dd.MM.yyyy")
z.NumberFormat = "DD.MM.YYYY"
End If
If InStr(1, z.Value, ":") > 0 Then
z.Value = Format(CVDate(z.Value), "hh:mm:ss")
z.NumberFormat = "hh:mm:ss"
End If
If InStr(1, z.Value, ",") > 1 Then
z.Value = z.Value * 1
z.NumberFormat = "#,##0.00"
End If
Next
End Sub

Gruß
Jochen
AW: falsch importiert?
15.02.2010 14:52:04
Kasimir
Hallo Jochen,
das sieht schon mal ganz gut aus. Problem an der Sache ist, das die Zahlenwerte richtig umgesetzt werden, die Uhrzeiten aber noch nicht. Außerdem dauert die Schleife bei der Anzahl an Datensätze (22562 Zeilen und 7 Spalten) schon etwas lange, was aber nicht so das Problem wäre.
Danke Dir auf jeden Fall für diesen Tip, mit dem ich nun erst mal weiterarbeiten kann.
MfG,
Oliver
Anzeige
AW: lade doch mal eine Beispieltabelle hoch oT
15.02.2010 14:56:58
JOWE
AW: lade doch mal eine Beispieltabelle hoch oT
15.02.2010 19:14:41
Kasimir
Hallo Jochen,
sorry, dass ich erst jetzt antworte, aber ich hatte einen Termin. Die Datei musste ich leider bei www.file-upload.net hochladen, da diese größer ist als der Upload hier erlaubt ist. Die Datei kannst Du Dir unter
http://www.file-upload.net/download-2262273/Netzdaten_2009.xls.html
herunterladen.
Danke und Gruß,
Oliver
AW: lade doch mal eine Beispieltabelle hoch oT
16.02.2010 10:19:25
JoWE
Hallo Oliver,
habe eine Prüfroutine eingebaut. Jetzt klappt's auch mit der Uhrzeit.
Sub test()
Dim i As Long
Dim sh As Object
Dim p As Boolean
Dim z1, z2 As Date
Application.ScreenUpdating = False
z1 = Now()
Set sh = ActiveSheet
For Each z In Range("A3:G22562") 'anpassen
stBar = Application.StatusBar
Application.StatusBar = z.Row
Debug.Print z.Address
If InStr(1, z.Value, "/") > 0 Then
z.Value = Format(CVDate(z.Value), "dd.MM.yyyy")
z.NumberFormat = "DD.MM.YYYY"
End If
If InStr(1, z.Value, ":") > 0 Then
z.Value = CVDate(z.Value)
z.NumberFormat = "hh:mm:ss"
p = True
End If
If p = False Then
If InStr(1, z.Value, ",") > 1 Then
z.Value = z.Value * 1
z.NumberFormat = "#,##0.00"
End If
End If
p = False
Next
z2 = Now
Application.ScreenUpdating = True
Application.StatusBar = stBar
MsgBox "Makrolaufzeit: " & Format(z2 - z1, "hh:mm:ss")
End Sub

Mit Deiner Beispieltabelle läuft das Makro auf meinem PC drei Minuten und 30 Sekunden.
Danach ist alles richtig umgesetzt.
Gruß
Jochen
Anzeige
AW: lade doch mal eine Beispieltabelle hoch oT
16.02.2010 13:54:53
Kasimir
Hallo Jochen,
danke Dir für Deine Mithilfe. Es funktioniert alles bestens.
Gruß,
Oliver

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige