Microsoft Excel

Herbers Excel/VBA-Archiv

Öffnen CSV-Datei

Betrifft: Öffnen CSV-Datei von: Bernd
Geschrieben am: 18.08.2008 13:55:26

Hallo zusammen,

wenn ich über den Datei Öffnen Dialog eine CSV Datei öffne, stehen die durch Semikolon getrennten Daten inner halb einer Zeile jeweils in verschiedenen Spalten.
Lasse ich den aufgezeichneten Code laufen, wird die CSV-Datei zwar geöffnet, aber der kompeltte Datensatz steht mit den Semikolons inner einer Zelle.

Ich muß die Dateien im Hintergrund öffnen, da eine Arbeitsmappe über SVerweise aus der CSV-Datei Daten ziehen muß

Weiss jemand Rat?

Beste Grüße

Bernd

  

Betrifft: AW: Öffnen CSV-Datei von: Rudi Maintaire
Geschrieben am: 18.08.2008 14:14:39

Hallo,
das klappt mit dem Assistenten via VBA nicht.

Sub tt()
  ReadCSV "c:\test\test.csv"
End Sub



Sub ReadCSV(ByVal strDateiName As String)
   Dim strTxt As String, myArr, lngL As Long, wks As Worksheet
   lngL = 1
   Open strDateiName For Input As #1
   Set wks = Workbooks.Add(1).Sheets(1)
   Do Until EOF(1)
      Line Input #1, strTxt
      myArr = Split(strTxt, ";")
      With wks
         .Range(.Cells(lngL, 1), .Cells(lngL, UBound(myArr) + 1)) = myArr
      End With
      lngL = lngL + 1
   Loop
   Close #1
End Sub


Gruß
Rudi


  

Betrifft: AW: Öffnen CSV-Datei von: Bernd
Geschrieben am: 18.08.2008 16:34:06

Hallo und vielen Dank,

leider löst dies nicht ganz mein Problem. Die SVerweise aktualisieren sich nur, wenn die externe Datenquelle geöffnet ist. Diese datenquelle hat einen bistimmten Namen, in diesem Fall kunden.csv. Daher muß die Datei auch unter diesem Namen geöffnet sein.
Ich möchte also eine semikolonseparierte CSV öffnen, so dass die Daten in einzelnen Spalten stehen und mit demn Semikolons hintereineinader in einer Spalte bzw. Zelle.

Beste Grüße

Bernd


  

Betrifft: AW: Öffnen CSV-Datei von: Jürgen
Geschrieben am: 18.08.2008 17:54:34

Hallo Bernd,

da Du die Daten aus der CSV-Datei ohnehin laden mußt: wäre es keine Alternative für Dich, die Daten über "Daten - Externe Daten importieren - Daten importieren" auf einem separaten Blatt in die Arbeitsmappe einzubinden und darauf die SVerweise zu setzen? Die Lösung läuft ohne VBA, auch die Datenaktualisierung ist ein Klacks (auf Wunsch beim Öffnen der Arbeitsmappe), für die importierten Daten steht sofort ein passender Bereichsname zur Verfügung usw.

Gruß, Jürgen


  

Betrifft: AW: Öffnen CSV-Datei von: firmus
Geschrieben am: 19.08.2008 08:10:46

Hallo Bernd,

ich sehe noch 2 Ansätze.
1) rename der Datei auf xxxx.TXT
2) TextToColumns

zu 1) Beim Öffnen einer CSV, die auf TXT renamed wurde sollten danach die Werte in einzelnen Spalten stehen. (bei mir klappt's).
zu 2) wenn die CSV geöffnet ist und die Daten je Zeile in Spalte A stehen so kann TexttoColum angewandt werden. Beim wird die Trennfunktion vom Import nachträglich möglich.
Aufrufbar zum Aufzeichnen: ==> Data ==> TexttoColumns ...... ~f~

Beispiel aus einem Macro:

~f~ If (ActiveSheet.UsedRange.Rows.Count > 1) Then GoTo bereitsSpalten
'
Range("A1").Select
' Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range("a:a").Select
' On Error Resume Next

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 4), Array(18, 1)), _
TrailingMinusNumbers:=True
Cells.Select
Cells.EntireColumn.AutoFit
' On Error GoTo 0

bereitsSpalten:


Gruß
Firmus


 

Beiträge aus den Excel-Beispielen zum Thema "Öffnen CSV-Datei"