Office: (Office 2016) FileDialog

Helfe beim Thema FileDialog in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, Ich benötige wieder Eure Hilfe. Ich möchte mittels FileDialog unterschiedliche Dateien öffnen können. (Excel, Word, PDF). Nun erhalte ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Mampfred, 6. Dezember 2021.

  1. FileDialog


    Hallo Forum,

    Ich benötige wieder Eure Hilfe.
    Ich möchte mittels FileDialog unterschiedliche Dateien öffnen können. (Excel, Word, PDF).
    Nun erhalte ich die gewünschte Auswahl im Dialog, kann aber die entsprechende Datei nicht zur Anzeige bringen.
    Wie muss mein Code abgeändert werden, dass ich sowohl Excel-, Word- und auch PDF-Dateien öffnen kann?
    Ich bin für jede Hilfe bzw. Anregung dankbar.

    Der Mampfred

    Code:
    Sub Ablage()
    
      With Application.FileDialog(msoFileDialogOpen)
         .AllowMultiSelect = False
         .InitialFileName = "C:\Patienten\"
         .Title = "Dateiauswahl"
         .Filters.Add "Alle Dateien", "*.*"
         .Show
         If .Show = -1 Then
            '###################
            Workbooks.Open .SelectedItems(1) 'auch docs und PDF
            '###################
         End If
           End With
    End Sub
    
     
    Mampfred, 6. Dezember 2021
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Datei öffnen Word, Powerpoint oder sonst was

    Option Explicit

    Declare Function ShellExecute Lib "SHELL32.DLL" _

    Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _

    ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _

    ByVal nShowCmd As Long) As Long


    Sub Open_File(strFileName As String, windowType As Integer)

    ShellExecute 0, "Open", strFileName, "", "", windowType

    End Sub


    Sub test()

    '1 = vbNormalFocus

    '2 = Minimized

    '3 = Maximized

    Open_File "c:\DeineDatei.txt", 1

    End Sub

    ‘ von Ramses Rainer

    FileDialog GrußformelFileDialog Homepage
     
    Hajo_Zi, 6. Dezember 2021
    #2
  3. Hallo HaJo_Zi,

    ich habe deinen Code in ein Modul eingetragen. Es passiert aber nix.
    Ich bin Physio und kein Programmierer, deshalb mache ich bestimmt einen dummen Fehler, den ich aber nicht realisiere.

    Wie und wo muss dein Code ausgeführt werden?

    Danke schon mal.

    Der Mampfred
     
    Mampfred, 6. Dezember 2021
    #3
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    FileDialog

    nur wenige schauen auf Deinen Rechner und sehen die Datei.
    Ich möchte gerne den Fehler im Original sehen.

    Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

    Ein Nachbau sieht meist anders aus als das Original. <B>Darum sollte das Original verlinkt werden.</b>

    Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
    Hinweis - Anonymisierung und Pseudonymisierung von Beispielmappen - MS-Office-Forum
    änderrn.
    Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Muster*, Test*, Mappe*, Beispiel*, Fehler*, Kalender* usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
    Es sollte ein aussagekräftiger Name sein.

    Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)3

    Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.

    Bilder statt Datei | Excel ist sexy!

    Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.

    Das ist nur meine Meinung zu dem Thema.

     
    Hajo_Zi, 6. Dezember 2021
    #4
  5. Hallo HaJo_Zi,

    ich verstehe deine Kritik nicht. Es gibt keine Datei. Es gibt lediglich diesen (meinen) Code, den ich aufrufe um den FileDialog zu öffnen, um dann eine der in den diversen Unterordnern abgelegte Datei (Word, Excel, PDF) zu öffnen. Was mir aber nicht gelungen ist. Bei meinem Code lande ich genau dort, wo ich will, im Ordner Patienten. Deshalb habe ich hier höflich um Hilfe gebeten.
    Bei deinem Code passiert aber nichts, wenn ich ihn aufrufe. Eventuell mache ich ja etwas falsch. Aber es liegt sicherlich nicht daran, dass ich deinen Code nicht in eine Datei gepackt habe, die ich dir dann hätte zusenden können.

    Trotzdem liebe Grüße

    Der Mampfred
     
    Mampfred, 6. Dezember 2021
    #5
  6. Wolff68
    Wolff68 hat Ahnung
    Ein gewisses Verständnis was in dem Code passiert sollte eben vorhanden sein.

    Der Code von Hajo erzeugt eine Sub um eine Datei zu öffnen. Er liefert Dir auch ein Beispiel wie der Aufruf dieser Sub funktioniert.
    Natürlich musst Du nun den Aufruf in Deinen Code einbauen.

    Am Ende Deines FileDialogs hast Du den zu öffnenden Dateinamen als .SelectedItem(1)
    Du musst anstatt dem Workbooks.Open die Sub von Hajo verwenden.
    Also Workbooks.Open .SelectedItems(1) durch Open_File(.SelectedItem(1), 1) ersetzen.
     
    Wolff68, 6. Dezember 2021
    #6
  7. Hajo_Zi
    Hajo_Zi Erfahrener User
    ich habe den Satz
    "ich habe deinen Code in ein Modul eingetragen. Es passiert aber nix."
    wohl fallsch verstranden, ein Modul ist bei mir in einer Datei.,
    Ich bin dann raus, da flasch verstanden.
    Vuel Erfolg noch.

     
    Hajo_Zi, 7. Dezember 2021
    #7
  8. FileDialog

    Hallo Wolff68,
    grundsätzlich muss ich dir Recht geben, dass ein gewisses Verständnis für den Code vorhanden sein muss.
    Ich bekäme solch eine Code wie von Hajo_Zi nie hin, ich bin aber auch wie gesagt kein Programmierer sondern Physio.
    Den Code habe ich jetzt in mein Makro, nach bestem Wissen und Gewissen und vor allen Dingen in Maßgabe meines Verständnisses für den Code eingebaut.
    Jedoch erhalte ich an der Stelle
    Code:
    Open_File(.SelectedItem(1), 1)
    eine Fehlermeldung, bzw. der Code wird schon vorher als fehlerhaft markiert.

    Die Datei FileDialog ist angehängt.

    Ich habe sicherlich wieder einen Fehler gemacht, aber bitte sei lo lieb und erkläre mir was ich falsch gemacht habe.

    Vielen Dank schon mal

    Bleib gesund

    der Mampfred
     
    Mampfred, 7. Dezember 2021
    #8
  9. Exl121150 Erfahrener User
    Hallo,

    die beiliegende modifizierte Excel-Datei enthält im allgemeinen Codemodul "modAblage" folgende VBA-Makros:
    Code:
    Option Explicit
    
    'HaJo_Zi 's Code
    Private Declare Function ShellExecute Lib "SHELL32.DLL" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, _
         ByVal lpOperation As String, _
         ByVal lpFile As String, _
         ByVal lpParameters As String, _
         ByVal lpDirectory As String, _
         ByVal nShowCmd As Long) As Long
    
    Enum ShowCmd
      NormalFocus = 1
      Minimized = 2
      Maximized = 3
    End Enum
    
    'HaJo_Zi 's Code
    Sub Open_File(strFileName As String, windowType As Integer)
        ShellExecute 0, "Open", strFileName, "", "", windowType
    End Sub
    
    Sub Ablage()
      Dim Pfad_Datei As String
    
      With Application.FileDialog(msoFileDialogOpen)
         .AllowMultiSelect = False
         .InitialFileName = "C:\Patienten\"
         .Title = "Dateiauswahl"
         .ButtonName = "Öffnen"
         .Filters.Add "Alle Dateien", "*.*"
         If .Show Then
            Pfad_Datei = .SelectedItems(1)
            Open_File Pfad_Datei, ShowCmd.NormalFocus
         End If
      End With
    
    End Sub
    
    Ferner enthält das Arbeitsblatt "Tabelle1" einen Button, der mit der SUB Ablage() verknüpft ist.

    Nach Klick auf den Button wird ein Dateiauswahldialog angezeigt, in dem eine Datei, ausgehend von einem Startverzeichnis (C:\Patienten\), ausgewählt werden kann.
    Nach Klick auf Button "Öffnen" wird diese Datei entsprechend ihrer Dateierweiterung in einem separaten Fenster geöffnet.
     
    Zuletzt bearbeitet: 7. Dezember 2021
    Exl121150, 7. Dezember 2021
    #9
  10. Hallo Exl121150,

    vielen Dank für deinen Code und für deine Hilfe.
    Ich habe deinen Code getestet und er läuft eigentlich einwandfrei, d.h. Word- und PDF-Dateien werden wie gewünscht geöffnet.
    Lediglich bei Excel-Dateien (xlms , xlsx) verschluckt er sich. Es wird die Sanduhr angezeigt und ich kann nur noch mit dem Task-Manager die Datei (Sanduhr) beenden.
    Woran kann das liegen?
    Kannst du diesen Bug bereinigen, oder tritt der Fehler nur bei mir (meinem Rechner) auf?

    Vielen Dank, auf jedenfalls bis hierher. Bleib gesund und bleibe dem Forum erhalten.

    Viele liebe Grüße

    Der Mampfred
     
    Mampfred, 7. Dezember 2021
    #10
  11. Hallo Mampfred,
    der gleiche Effekt tritt bei mir auch auf, warum auch immer.
    Das SHellExecute kann ich im Schrittbetrieb nicht testen, also ein Umweg für Exceldateien:
    im Sub Ablage ersetzen
    If .Show = -1 Then
    Pfad_Datei = .SelectedItems(1)
    If Left(Right(Pfad_Datei, 4), 3) = "xls" Then 'neu
    Workbooks.Open Pfad_Datei 'neu
    Else 'neu
    Open_File Pfad_Datei, ShowCmd.NormalFocus
    End If 'neu
    End If
    Dann funktioniert es bei mir zumindest.
    Gruß der ALteDresdner
     
    AlterDresdner, 7. Dezember 2021
    #11
  12. Hallo AlterDresdner,
    mir fällt dazu nur ein "Alter Schwede". Prima. Ganz toll. Es funktioniert jetzt auch mit Excel-Dateien. Du hast mir, wie die anderen übrigens auch, sehr geholfen.
    Besten Dank für deine Hilfe.

    Auch für dich bleib gesund

    Der Mampfred
     
    Mampfred, 7. Dezember 2021
    #12
  13. Exl121150 Erfahrener User

    FileDialog

    Hallo @Mampfred,
    ich habe das mit mehreren Excel-Dateien getestet und kein Problem dabei festgestellt: Die Excel-Dateien wurden ordnungsgemäß geöffnet, auch mehrere hintereinander, wobei ich diese auch gleichzeitig offen gehalten habe.
    Ich habe allerdings Excel365 (zum Unterschied von deinem Excel2016) - vielleicht hat das einen Einfluss.

    Aber du hast ja in der Zwischenzeit bereits einen funktionierenden Workaround erhalten, womit ich das Thema als gelöst betrachte.
     
    Exl121150, 8. Dezember 2021
    #13
  14. Hallo Exl121150,

    nochmals Danke für deine Hilfe und Erläuterungen.
    In der Tat ist das eine komische Kiste. Als Laie steht man dann schon vor einem großen Berg, der erstmal zur Seite geschoben werden muss.
    Ich wollte ja "nur" auf Knopfdruck einen Ordner und dann eine Datei öffnen und habe dann diesen "Berg" vor mich hingestellt.
    Aber mit deiner und anderer Unterstützung ist es ja gelungen diesen Berg beiseite zu räumen.

    Vielen Dank nochmal für Alles und bleib gesund

    Der Mampfred
     
    Mampfred, 8. Dezember 2021
    #14
Thema:

FileDialog

Die Seite wird geladen...
  1. FileDialog - Similar Threads - FileDialog

  2. Mehrfache Auswahl mit FileDialog

    in Microsoft Excel Hilfe
    Mehrfache Auswahl mit FileDialog: Hallo zusammen, Ich bin blutiger Anfänger in VBA, muss mich aber irgendwie durch ein betriebliches Problem durchwurschteln. Das klappt ganz gut bis ich jetzt hierdrauf gestossen bin: In einem...
  3. Filedialog-Filter nicht erkannt

    in Microsoft Excel Hilfe
    Filedialog-Filter nicht erkannt: Hallo, ich habe mit folgender kommentierter Funktion eine Fehlermeldung bekommen, obwohl sie syntaktisch korrekt ist. Diese Funktion dient dazu eine Datei in einer Formatoption zu speichern. Im...
  4. XLS2000: FileDialog u. sht.protect

    in Microsoft Excel Hilfe
    XLS2000: FileDialog u. sht.protect: Hi! Ich habe folgende Probleme: es wurde VBA-Code auf Basis von Excel 2003 entwickelt. Nun wird die Datei aber auch noch von jemandem auf Basis von Excel 2000 verwendet, mit Fehlern für...
  5. Effizienter Import/Export mit TransferSpreadSheet und FileDialog

    in Microsoft Access Hilfe
    Effizienter Import/Export mit TransferSpreadSheet und FileDialog: Hi Leute, das ist meine erste Anfrage hier im Forum, also weist mich bitte darauf hin, falls ich was vergessen habe. Ich nutze Ac2007. Ich habe für ein simples Fakturierungsprogramm in einem...
  6. FileDialog von 32-Bit auf 64-Bit umstellen

    in Microsoft Access Hilfe
    FileDialog von 32-Bit auf 64-Bit umstellen: Hallo NG, in unserer Firma auf Office 365 64-Bit umgestellt. Meine Access – Anwendung habe ich soweit wieder am Laufen. Mein Problem ist, dass jetzt der FileDialog nicht mehr funktioniert. Es wird...
  7. Datei mit FileDialog direkt öffnen

    in Microsoft Access Hilfe
    Datei mit FileDialog direkt öffnen: Leidiges Thema! Ich versuche mit den Standardangaben zum öffnen über 'File-Dialog' in einem geöffnetem Fenster die Datei direkt zu öffnen. Hierbei handelt es sich um diverse Endungen, sprich:...
  8. FileDialog

    in Microsoft Access Hilfe
    FileDialog: Ich habe eine ziemliche Anfängerfrage....es ist einfach zu lange her, dass ich mit Access/VBA gearbeitet habe... Ich möchte einen FileDialog öffnen und eine Exceldatei auswählen können. Deren...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden