Import .txt - Datei über Drag&Drop

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Import .txt - Datei über Drag&Drop
von: Mr. Banana
Geschrieben am: 07.08.2015 10:21:36

Hallo liebe Excel-Experten,
ich tüftle momentan an einem kleinen Excel-Tool, das die Arbeit mir und einigen Kollegen erleichtern soll. Hierzu werden Datenmengen aus einer Textdatei eingelesen. Alle Voreinstellungen beim Import werden beibehalten, lediglich der Austausch von allen Punkten durch Kommas muss stattfinden.
Ich fände es genial, wenn das ganze durch ein Drag&Drop System funktionieren könnte. Man klickt auf den Makro-Button, ein Fenster geht auf, man lässt die zu importierende Textdatei rein fallen, diese wird eingespielt, Punkte mit Kommas ersetzt und an die Stelle A1 reinkopiert.
Leider bin ich in dem Umgang mit Visual Basic noch nicht so geübt, um das eigenständig hinzukriegen.
Hat einer von euch eine Idee?
Vielen Dank im Voraus
Gruß
Max

Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Sepp
Geschrieben am: 07.08.2015 10:23:55
Hallo Max,
zeig mal eine solche txt-Datei.

Gruß Sepp


Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Mr. Banana
Geschrieben am: 07.08.2015 10:37:22
Hallo Sepp! Tut mir leid, leider darf die Datei nicht hochgeladen werden =/. Aber ich beschreibe Dir den Aufbau:
Hier trennen Tabstopps die Zellen von einander. Wenn man das also beim Import beachtet und die Punkte schließlich gegen Kommas tauscht, dann hat man eine Tabelle eingefügt. Dies ist in ersteer Linie der Plan. Nun wäre es natürlich der Hammer, wenn man diesen Umweg über ein Drag&Drop Marko überdrücken könnte.

Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Sepp
Geschrieben am: 07.08.2015 10:39:46
Hallo Max,
kannst du eine solche txt-Datei nicht anonymisieren bevor du sie hochlädst?

Gruß Sepp


Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Mr. Banana
Geschrieben am: 07.08.2015 11:29:54
leider nicht. Das Unternehmen lässt keinen Datenaustausch zu. Sorry. Es ist aber lediglich eine Textdatei mit vielen Zahlen.

Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Sepp
Geschrieben am: 07.08.2015 11:32:37
Hallo Max,
beim Import kannst du doch auch die Zeichen für Dezimal- bzw. Tausender-Trennzeichen einstellen, hast du das schon mal probiert?
Zeichne einen solchen Importvorgang mit dem Rekorder auf und zeige den Code.

Gruß Sepp


Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Mr. Banana
Geschrieben am: 07.08.2015 11:49:47
Hallo Sepp,
hier an sich der Code für die Funktion.
Nun soll das Makro aber nicht die Datei vom Desktop holen, sondern man lässt die Textdatei in ein Drag&Drop Fenster fallen. Dadurch sollen die ersten Zeilen des Auswählens der Datei ersetzt werden. Wenn Dir eine andere Variante einfällt die Datei einzulesen, so wäre ich auch darüber froh. Die einzige Einschränkung ist, dass es so intuitiv wie möglich ist.


    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Desktop\BeispielTextdatei.txt", _
        Destination:=Range("$A$1"))
        .Name = "BeispielTextdatei"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub

Danke für Deine Hilfe!

Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Sepp
Geschrieben am: 07.08.2015 12:09:38
Hallo Max,
das mit Drag&Drop lassen wir mal sein, ein Datei-Auswahldialog sollte es wohl auch tun!
In ein allgemeines Modul der Importdatei, importiert wird in das aktive Tabellenblatt!

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Sub TXT_Einlesen()
Dim strFile As String
Dim objQT As Object

With Application.FileDialog(msoFileDialogFilePicker)
  .InitialFileName = "E:\Forum" 'Startverzeichnis - Anpassen
  .Title = "TXT-Datei auswählen"
  .ButtonName = "Import Starten"
  .Filters.Clear
  .Filters.Add "Text Dateien", "*.txt; *.csv", 1
  .Filters.Add "Alle Dateien", "*.*", 2
  .FilterIndex = 1
  .InitialView = msoFileDialogViewList
  If .Show = -1 Then strFile = .SelectedItems(1)
End With

If Len(strFile) Then
  With ActiveSheet
    .UsedRange.Clear
    For Each objQT In .QueryTables
      objQT.Delete
    Next
    With .QueryTables.Add(Connection:= _
        "TEXT;" & strFile, Destination:=Range("$A$1"))
      .Name = "BeispielTextdatei"
      .FieldNames = True
      .RowNumbers = False
      .FillAdjacentFormulas = False
      .PreserveFormatting = True
      .RefreshOnFileOpen = False
      .RefreshStyle = xlInsertDeleteCells
      .SavePassword = False
      .SaveData = True
      .AdjustColumnWidth = True
      .RefreshPeriod = 0
      .TextFilePromptOnRefresh = False
      .TextFilePlatform = 437
      .TextFileStartRow = 1
      .TextFileParseType = xlDelimited
      .TextFileTextQualifier = xlTextQualifierDoubleQuote
      .TextFileConsecutiveDelimiter = False
      .TextFileTabDelimiter = True
      .TextFileSemicolonDelimiter = False
      .TextFileCommaDelimiter = False
      .TextFileSpaceDelimiter = False
      .TextFileColumnDataTypes = Array(1)
      .TextFileDecimalSeparator = "."
      .TextFileThousandsSeparator = ","
      .TextFileTrailingMinusNumbers = True
      .Refresh BackgroundQuery:=False
    End With
  End With
End If
End Sub


Gruß Sepp


Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: Max
Geschrieben am: 07.08.2015 12:29:28
Das funktioniert einwandfrei! Hab vielen Dank Sepp!!
Dieses Forum ist weltklasse!

Bild

Betrifft: AW: Import .txt - Datei über Drag&Drop
von: EtoPHG
Geschrieben am: 07.08.2015 10:53:13
Hallo Max,
Wenn man etwas auf ein Fenster fallen lässt, dann geht es meist kaputt! ;-)
Und was für Steuerelemente soll das Fenster haben?
Und was wird fallen gelassen?
Auf ein Textfeld einer Userform kannst du per Drag und Drop ev. Textinhalte aber nicht eine Datei 'fallen' lassen. Das macht aber nicht viel Sinn, denn dann müsste der Benutzer vorher die Textdatei mit einem Drag-Drop fähigen Editor öffnen, den Text auswählen und auf das Excel ziehen etc.etc.
Einfacher wäre doch wohl einen FileDialog zu öffnen um das/die zu importierenden Dateien auszuwählen und zu importieren. Dazu findest du x-Beispiele in der Recherche!
Gruess Hansueli

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Import .txt - Datei über Drag&Drop"