VB 2010 muss wissen wann ein Makro in Excel fertig ist

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von cl10k.

    VB 2010 muss wissen wann ein Makro in Excel fertig ist

    Hallo,

    ich muss irgendwie zwischen VBA und dem normalen Visual Basic 2010 Express interagieren können, d.h. VB 2010 startet ein Makro bei VBA (<-- funktioniert schon) und muss warten, bis das Modul fertig ist, bevor es das nächste startet.

    Lösungsansatz: Dazu habe ich mir gedacht, erstelle ich einfach mit VBA eine Textdatei und VB 2010 checkt im Loop solange, ob die Datei existiert, bis sie es tut. Dann löscht es die Datei und startet das nächste Makro, usw.

    Wie geht das? Ich scheitere konkret schon an der Erstellung der Textdatei.

    Danke
    ~P1xel

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    P1xelfehler schrieb:

    VB 2010 startet ein Makro bei VBA (<-- funktioniert schon)
    Mit welchem Code und welcher Technik?
    Mit Interop und Application.Run? Das läuft doch meines Wissens synchron.

    P1xelfehler schrieb:

    erstelle ich einfach mit VBA eine Textdatei
    Wenn du schon manuell synchronisieren musst, dann nimm doch eine Excel-Zelle.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Du hast ein VB.NET Anwendung die eine Auto-it exe startet die ein Excel VBA Makro startet ?

    Du kannst das direkt aus .NET heraus machen über Office Interop und hast dann auch eine bessere Kontrolle (und das ganze läuft synchron).

    Mit der Excelzelle ist gemeint. Du musst ja keine Textdatei erstellen sondern kannst einfach in eine definierte Zelle sagen wir A1 den Wert 1 eintragen wenn das Makro startet und 0 wenn es beendet ist und diesen Wert aus deiner Anwendung heraus prüfen. Ist aber nicht nötig wenn du direkt in deinem VB.NET Projekt Excel einbindest und in der Theorie sogar das ganze Makro dort durchführen kannst.
    Das ist meine Signatur und sie wird wunderbar sein!
    Ok, danke - sehr gut! Wusste ich nicht^^

    jetzt hab ich das so gemacht wie hier am Anfang gezeigt: support.microsoft.com/en-us/kb/301982

    Jetzt muss ich nur irgendwie das Makro "SpaltenAusblenden" starten. Weiß einer wie genau das geht? Den Rest kriege ich dann alleine hin.

    Müsste ja irgendwie so gehen:

    VB.NET-Quellcode

    1. Micosoft.Office.Interop.Excel.???

    Was genau macht das Makro eigentlich ? Ist es lang? Ausführen kannst du es theoretisch mit

    VB.NET-Quellcode

    1. Dim oExcel As New Excel.Application
    2. oExcel.Workbooks.Open("pfad\Bla.xlsm")
    3. oExcel.Run("makroname")


    Aber vll kannst du das eh direkt auch in vb.net einfach durchführen (wenn du willst). Du hast über Excel Interop im Grunde die gleichen Möglichkeiten wie über VBA um das Workbook iwie zu bearbeiten.
    Das ist meine Signatur und sie wird wunderbar sein!
    Das blendet in dem Fall nur Spalten aus, die nicht unbedingt benötigt werden. (ein anderes Makro blendet diese wieder ein)

    Aber es gibt noch weitere. Zum Berechnen von Kosten aus mehreren riesigen Tabellen. Ich habe die Makros nicht selbst erstellt, sondern will/soll halt nur eine graphische Oberfläche zu einfacheren Bedienung schaffen ;)

    Irgendwie funktioniert dein Code bei mir nicht...

    "Der Typ 'Excel.Application' ist nicht definiert."

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „P1xelfehler“ ()