Thema Datum  Von Nutzer Rating
Antwort
19.06.2013 18:12:16 Kendels
NotSolved
Blau CSV Datei automatisch importieren
19.06.2013 22:49:05 Gast54948
NotSolved
20.06.2013 10:51:36 Kendels
NotSolved
20.06.2013 11:22:54 schokobons
NotSolved

Ansicht des Beitrags:
Von:
Gast54948
Datum:
19.06.2013 22:49:05
Views:
946
Rating: Antwort:
  Ja
Thema:
CSV Datei automatisch importieren

Kann man z.B. so machen:

Option Explicit

Public Function ImportCSV() As Boolean

'?-------------------------------------------------------------------------------------
  Const C_IMPORT_WORKSHEET_NAME   As String = "ImportedData" 'Ziel-Arbeitsblatt
  Const C_IMPORT_COLUMN           As String = "A"            'Ziel-Spalte
'?-------------------------------------------------------------------------------------
  
  Dim wks   As Excel.Worksheet    'Ziel-Arbeitsblatt
  Dim rng   As Excel.Range        'Ziel-Bereich
  Dim vntResult       As Variant  'ausgewählte Datei(en)
  Dim vntFileContent  As Variant  'Dateiinhalt
  Dim QNr   As Integer            'zum Öffnen einer Datei benötigt
  Dim i     As Long               'um Dateien zu iterieren
  
  Set wks = Worksheets(C_IMPORT_WORKSHEET_NAME)
  
  vntResult = Application.GetOpenFilename( _
                  FileFilter:="CSV Dateien (*.csv), *.csv", _
                  Title:="CSV Dateien öffnen", _
                  MultiSelect:=True)
  
  Call wks.UsedRange.Clear

  If IsArray(vntResult) Then
    
    For i = LBound(vntResult) To UBound(vntResult)
      
      QNr = FreeFile
      Open vntResult(i) For Input As #QNr
        vntFileContent = Input(LOF(QNr), #QNr)
      Close #QNr
      
      Set rng = wks.Cells(wks.Rows.Count, C_IMPORT_COLUMN).End(xlUp)
      If Not IsEmpty(rng.Value) Then Set rng = rng.Offset(1)
      
      vntFileContent = Split(vntFileContent, vbNewLine)
      vntFileContent = WorksheetFunction.Transpose(vntFileContent)
      
      If vntFileContent(1, 1) <> "" Then
        With rng
          'Dateipfad
          .Value = vntResult(i)
          'Daten (von der Anzahl Eins abziehen, da letztes Element immer eine leere Zeichenfolge ist)
          .Offset(1).Resize(UBound(vntFileContent) - 1).Value = vntFileContent
        End With
      End If
      
    Next
    
    Call wks.Columns(C_IMPORT_COLUMN).TextToColumns(Semicolon:=True)
    
  End If
  
End Function

 


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
19.06.2013 18:12:16 Kendels
NotSolved
Blau CSV Datei automatisch importieren
19.06.2013 22:49:05 Gast54948
NotSolved
20.06.2013 10:51:36 Kendels
NotSolved
20.06.2013 11:22:54 schokobons
NotSolved