Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: Bernd am August 28, 2018, 14:47:24 Nachmittag

Titel: Aufruf "Datei-öffnen-Menü"aus VBA um csv.Datendatei einzulesen
Beitrag von: Bernd am August 28, 2018, 14:47:24 Nachmittag
Hallo,
folgende Aufgabe habe ich, wofür ich bis jetzt keine Lösung gefunden habe:
ich möchte per Button und VBA über "Daten einfügen aus Text" eine csv-Datendatei einlesen. Die ganzen folgenden Einstellungen sind ohne Frage in VBA hinzubekommen
ABER :  die Datei kann unterschiedliche Namen haben und in verschiedenen Verzeichnissen abgelegt sein - also müsste ich das Excel-Menü "Datei öffnen" über VBA öffnen lassen, das Bild mit dem Datei-Explorer-Ausschnitt, um mir gezielt eine der vielen Datendateien auszusuchen.
Hat jemand eine Lösung mit Syntax dafür?
Gruß
Bernd
Titel: Antw: Aufruf "Datei-öffnen-Menü"aus VBA um csv.Datendatei einzulesen
Beitrag von: gmg-cc am August 28, 2018, 18:32:37 Nachmittag
Moin,
sind Suchmaschinen deine Feinde? Ich habe eben >67.000 Ergebnisse bekommen, als ich eingegeben hab: Datei öffnen Dialog VBA und da wird bestimmt auch etwas für dich dabei sein; beispielsweise http://www.herber.de/forum/archiv/1184to1188/1184059_Dateiauswahlfilter_mit_FileDialog.html (http://www.herber.de/forum/archiv/1184to1188/1184059_Dateiauswahlfilter_mit_FileDialog.html)
Titel: Antw: Aufruf "Datei-öffnen-Menü"aus VBA um csv.Datendatei einzulesen
Beitrag von: Bernd am September 04, 2018, 14:03:36 Nachmittag
Hallo,

soweit habe ich es schon mal hinbekommen. Der Pfad/die Datei wird übergegeben (wenn auch umständlich) - aber beim
Einlesen der csv nicht mehr erkannt ( VBA meckert : "...kann Datei nicht finden ..."). Also muss doch bei der
-QueryTables.Add- etwas schief laufen - der Pfad wird nicht erkannt. Muss der doch unter .name der Dateiname expliziert
aufgeführt werden? Die Datei sollte doch mit dem Pfad mit der -strFileName- doch übergeben werden ... oder ist das ein
Problem der Variablendeklaration oder Zeichen falsch gesetzt ... ?
------------------
Public Function CSV_Datei_einlesen()
Dim strFileName As String
    With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
    .Filters.Add "CSV-Dateien", "*.csv"
       If .Show = -1 Then
          strFileName = .SelectedItems(1)
          Cells(1, 1) = strFileName
       End If
    End With
End Function
Sub Einlesen()
Dim strFileName As String
    CSV_Datei_einlesen
    strFileName = Cells(1, 1)
    Cells(2, 2).Select
    With ActiveSheet.QueryTables.Add(Connection:="Text;strFileName", Destination:=Range("$B$2"))
        .Name = "strFileName"
        ' .... all die Einzeleinstellung sind hier ausgeblendet
        .Refresh BackgroundQuery:=False
    End With
End Sub
------------------
Gruß
und Danke im Voraus
Bernd