Thema Datum  Von Nutzer Rating
Antwort
12.01.2017 15:28:45 dschuelig
NotSolved
12.01.2017 18:30:38 Gast70820
NotSolved
12.01.2017 19:28:52 dschuelig
NotSolved
12.01.2017 20:12:39 Mackie
NotSolved
13.01.2017 17:26:27 dschuelig
NotSolved
Blau Multiselect
13.01.2017 18:14:44 Mackie
*****
NotSolved
13.01.2017 18:47:28 dschuelig
NotSolved

Ansicht des Beitrags:
Von:
Mackie
Datum:
13.01.2017 18:14:44
Views:
682
Rating: Antwort:
  Ja
Thema:
Multiselect

Sub CSVimport()
'Makroname zum Impotieren von CSV-Dateien
     Dim pfad As Variant'  d.h. bei Bedarf Array oder Boolean
     Dim DateinameKurz As Variant '

     Dim Dateiname As Variant
     Dim WS As Worksheet
     pfad = FileSelection("*.csv") 'Hier wird die untere Funktion aufgerufen und der Rückgabewert in "pfad" geschrieben
     On Error GoTo weiter' Damit kein ERROR kommt bei der Schleife unten
     If pfad = False Then Exit Sub' Wenn "FALSE" - Raus , da sonst ERROR bei UBOUND
weiter:
     For i = 1 To UBound(pfad)' UBound bedeutet obere Begrenzung des Array (Anzahl Elemente - Also bei 3 angewählten Dateien wäre das 3))
          Dim TestArray() As String
          TestArray = Split(pfad(i), "\") 'Splitte Text anhand von "Backslash" und schreibe die einzelnen Teile in ein Array "TestArray"
          Dateiname = TestArray(UBound(TestArray)) 'Logischerweise landet der Dateiname (ohne Pfad) im letzten Element des Array
          DateinameKurz = Left(Dateiname, Len(Dateiname) - 4)'Dein Code - Endung abschneiden für Blasttnamen
          ActiveWorkbook.Worksheets.Add
          With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & pfad(i), Destination:=Range("A1"))
               .FieldNames = True
               .RowNumbers = False
               .FillAdjacentFormulas = False
               .PreserveFormatting = True
               .RefreshOnFileOpen = False
               .RefreshStyle = xlInsertDeleteCells
               .SavePassword = False
               .SaveData = True
               .AdjustColumnWidth = True
               .RefreshPeriod = 0
               .TextFilePromptOnRefresh = False
               .TextFilePlatform = 65001
               .TextFileStartRow = 1
               .TextFileParseType = xlDelimited
               .TextFileTextQualifier = xlTextQualifierDoubleQuote
               .TextFileConsecutiveDelimiter = False
               .TextFileTabDelimiter = False
               .TextFileSemicolonDelimiter = False
               .TextFileCommaDelimiter = True
               .TextFileSpaceDelimiter = False
               .TextFileColumnDataTypes = Array(1, 1)
               .TextFileTrailingMinusNumbers = True
               .Refresh BackgroundQuery:=False
          End With
          ActiveSheet.Name = DateinameKurz
     Next i 'Nächste Datei
End Sub

Das in ein MODUL kopieren:


Function FileSelection(ByVal Endung As String) As Variant
     FileSelection = Application.GetOpenFilename(FileFilter:="Excel-Dateien (" + Endung + ")," + Endung, MultiSelect:=True)

'    Öffnet und schreibt Deine Auswahl in ein Array "Fileselection" - Wenn Abbruch "False" statt Array


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
12.01.2017 15:28:45 dschuelig
NotSolved
12.01.2017 18:30:38 Gast70820
NotSolved
12.01.2017 19:28:52 dschuelig
NotSolved
12.01.2017 20:12:39 Mackie
NotSolved
13.01.2017 17:26:27 dschuelig
NotSolved
Blau Multiselect
13.01.2017 18:14:44 Mackie
*****
NotSolved
13.01.2017 18:47:28 dschuelig
NotSolved