Auswahlmenü um Excel Datei zu öffnen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMa5.

    Auswahlmenü um Excel Datei zu öffnen

    Hallo, ich weis leider nicht in welches Forum das genau gehörte deshalb habe ich mich für das allgemeine entschieden.
    Ich programmier noch nicht so lange VB aber muss ein Menü schreiben das mehrere Exceldatein über einen Knopfdruck öffnet, in dieser Datei ist dann ein VBA Makro das ausgeführt werden soll (u.A. mit speziellen Formeln die Add-Ins benötigen).
    Das Menü zum Auswählen und öffnen klappt auch schon, jedoch öffnet er die Datei in einer Präsentationsversion von Excel (sieht zumindest so aus) und nicht im Normalen Excel wie es mir lieber wäre, denn da sind auch die Add-Ins vorhanden.

    Ich habe leider nicht genug Ahnung wie ich das nun so mache das er entweder das normale Excel öffnet und darin dann die Datei, oder eben das benötigte Add-In in diese Präsentationsversion.

    Hier mal mein Quelltext:

    VB.NET-Quellcode

    1. Public Class Menu
    2. Dim wbName As String
    3. Dim Path As String
    4. Dim Dateipath As String
    5. Sub excelOpen()
    6. Dim Excel
    7. Excel = CreateObject("Excel.Application")
    8. Path = System.Environment.CurrentDirectory
    9. Dateipath = Path & wbName
    10. Excel.Workbooks.Open(Dateipath)
    11. End Sub
    12. Private Sub btn_datei1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_datei1.Click
    13. wbName = "\Unterordner1\datei1.xls"
    14. Call excelOpen()
    15. End Sub
    16. Private Sub btn_datei2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_datei2.Click
    17. wbName = "\Unterordner2\datei2.xls"
    18. Call excelOpen()
    19. End Sub
    20. Private Sub btn_datei3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_datei3.Click
    21. wbName = "\Unterordner3\datei3.xls"
    22. Call excelOpen()
    23. End Sub
    24. Private Sub btn_beenden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_beenden.Click
    25. Close()
    26. End Sub
    27. End Class


    Ich hoffe ihr könnt mir helfen, wäre zumindest sehr dankbar da ich es alleine wohl nicht hinbekomm.
    Danke schonmal im voraus.
    hallo goma,

    so kannst du unter vb.net eine datei öffnen
    in deinem fall wird dann exel mit dieser datei geöffnet

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Using o As New OpenFileDialog
    4. o.Filter = "Exel File|*.xls"
    5. If o.ShowDialog = Windows.Forms.DialogResult.OK Then
    6. Process.Start(o.FileName)
    7. End If
    8. End Using
    9. End Sub
    10. End Class

    gruss

    mikeb69
    Hallo, danke erstmal für die schnelle Antwort.
    Eigentlich will ich kein OpenFileDialog wo man die Datei noch extra aus wählen muss, sondern über den angegebenen Pfad direkt die Datei öffnen.

    Wie würde das dann mit meinem Quelltext aussehen?
    Evtl. war ich ja nur zu doof, dein Beispiel auf mein Code anzupassen.
    Super geht danke und wiedermal danke für die schnelle Antwort.
    uff hät ich gewusst das das so einfach geht... und ich hab ewig gebraucht bis das

    VB.NET-Quellcode

    1. Sub excelOpen()
    2. Dim Excel
    3. Excel = CreateObject("Excel.Application")
    4. Path = System.Environment.CurrentDirectory
    5. Dateipath = Path & wbName
    6. Excel.Workbooks.Open(Dateipath)
    7. End Sub


    richtig zum laufen gebracht hatte :)

    Nun hät ich noch eine frage, kann ich ihm auch direkt sagen das er die Makros aktivieren soll? Denn das fragt er mich nun wieder beim öffnen der Datei, das war mit dem Quelltext oben nicht der fall.
    Wenn das möglich wäre, wär das genau das was ich wollte. Wenn nicht ists zwar schade aber trotzdem super das es nun richtig läuft.
    hallo goma,

    ich hab hier kein excel tut mir leid.
    jedoch kannst du argumente mitübergeben - probier einfach ein bischen rum

    VB.NET-Quellcode

    1. Dim pi As New ProcessStartInfo
    2. pi.Arguments = "was auch immer für ein argument"
    3. pi.FileName = "dein dateiname wie aus dem anderen post"
    4. Process.Start(pi)


    noch ein tipp nebenbei
    ein

    VB.NET-Quellcode

    1. Dateipath = Path & wbName

    kann auch schief gehe !!!

    pfadangaben immer mit

    VB.NET-Quellcode

    1. System.IO.Path ("Pfad","Dateiname")

    verbinden.

    und noch ein lob :thumbsup:
    das hier

    VB.NET-Quellcode

    1. Path = System.Environment.CurrentDirectory

    verwenden noch zu wenige programmierer

    gruss

    mikeb69
    Hi,

    Nun hät ich noch eine frage, kann ich ihm auch direkt sagen das er die Makros aktivieren soll?


    soweit ich weiß nicht.
    Es gibt allerdings die Möglichkeit im Excel die Sicherheitseinstellungen anzupassen. (Extras - Makro - Sicherheit)


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de