Microsoft Excel

Herbers Excel/VBA-Archiv

vor Datenimport Punkt in Komma wandeln | Herbers Excel-Forum


Betrifft: vor Datenimport Punkt in Komma wandeln von: Stu
Geschrieben am: 26.02.2010 17:32:23

Hallo Excelexperten,

ich möchte Daten aus einer *.dat Datei importieren und in eine Exceltabelle schreiben. Die Daten werden in Excel eingefügt. Die importierten Zahlen haben den Punkt als Dezimaltrennzeichen und werden deshalb in Excel verfälscht angezeigt. Die Frage ist nun wie ich es schaffen den Punkt mit dem Komma zu ersetzten ohne das Excel vorher als Datumswert oder ähnliches interpretiert.

z.B
meine zu importierende Zahl aus der *.dat Datei lautet: 21.9
und wird nach dem Import als 40.442 angezeigt
anstatt richtigerweise 21,9

Hier mein Code:

Sub Datenimport()
Dim Importdatei$, Verzeichnis$ ', aktiver_Blattname As String
Application.ScreenUpdating = False
'aktiver_Blattname = ActiveSheet.Name
Sheets("Tabelle2").Activate
'Verzeichnis = "d:\"
On Error Resume Next
ChDir Verzeichnis
Importdatei = Application.GetOpenFilename("Klimadaten (*.dat), *.dat")
Application.ScreenUpdating = False
Range("f1:g8760").Select
Selection.Clear
Selection.NumberFormat = "0,00"

On Error Resume Next
Dim Zelle As Range
For Each Zelle In Selection
Zelle.Value = Application.Substitute(Zelle.Value, ".", ",") * 1
Next Zelle
On Error GoTo 0

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Importdatei, _
Destination:=Range("A1"))
.RefreshStyle = xlOverwriteCells
.TextFileTabDelimiter = True
.Refresh BackgroundQuery:=False

End With

  

Betrifft: AW: vor Datenimport Punkt in Komma wandeln von: IngGi
Geschrieben am: 26.02.2010 17:55:02

Hallo stu,

versuch's doch mal andersrum. Nicht die Daten verbiegen, sondern Excel:

Sub Import()

Dim strDecSep As String
Dim strTsdSep As String
Dim blnSysSep As Boolean
Dim strImportdatei As String


strImportdatei = Application.GetOpenFilename("Klimadaten (*.dat), *.dat")

With Application
  strDecSep = .DecimalSeparator
  strTsdSep = .ThousandsSeparator
  blnSysSep = .UseSystemSeparators
  
  .DecimalSeparator = "."
  .ThousandsSeparator = "'"
  .UseSystemSeparators = False
End With
    
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & _
  strImportdatei, Destination:=Range("A1"))
  
  .RefreshStyle = xlOverwriteCells
  .TextFileTabDelimiter = True
  .Refresh BackgroundQuery:=False
End With

With Application
  .DecimalSeparator = strDecSep
  .ThousandsSeparator = strTsdSep
  .UseSystemSeparators = blnSysSep
End With

End Sub
Gruß Ingolf


  

Betrifft: AW: wozu Excel verbiegen? von: Daniel
Geschrieben am: 26.02.2010 23:52:52

ist doch gar nicht notwendig.
man kann beim Importieren von Daten in der Importfunktion doch vorgeben, ob bei den zu importierenden Daten jetzt der Punkt oder das Komma das Dezimaltrennzeichen ist.

Das geht im Importassistenten im Schritt 3, wenn man auf den Button WEITERE... clickt.

wenn du es als Makro brauchst, führe es einmal von Hand aus und lass dabei den Recorder mitlaufen.

Gruß, Daniel


  

Betrifft: Danke von: Stu
Geschrieben am: 01.03.2010 09:44:23

Danke, ich setzte nun das Makro für den Datenimport ein :)


Beiträge aus den Excel-Beispielen zum Thema "vor Datenimport Punkt in Komma wandeln"