Announcement

Collapse
No announcement yet.

Mittels VBA andere Excel Instanz ansprechen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mittels VBA andere Excel Instanz ansprechen

    Moin an alle,
    folgendes Problem:
    Ich habe zwei verschiedene Excel Insatnzen laufen und möchte von der einen (da läuft das Makro) auf die andere zugreifen und Werte aus der Tabelle entnehmen.
    Die einzige Information über die zweite Datei/Instanz ist der Dateiname (zumindesten die die ersten 5 Zeichen "O_EBR").
    Was ich bräuchte wäre eine Abfrage ob die Datei offen ist und wie ich auf die Datei/Tabelle zugreifen kann.

    Hoffe jemand hat eine Idee und kann ir helfen.

    Gruß

    Olaf

    MS Office 2003 SP3
    WIN XP Prof.

  • #2
    Mittels VBA andere Excel Instanz ansprechen

    Hallo
    Damit habe ich mich auch schon rumgeärgert und ich kann dir sagen vergiss es! Es gibt keine Möglichkeit von einer Excel-Instanz auf die andere zuzugreifen. Das ist aber SO doch nicht ganz richtig: Wenn ich aus der Instanz X heraus die Instanz Y erstelle kann ich jederzeit von X auf Y zugreifen aber nicht umgekehrt.
    Also wenn ich Excel "normal" öffne, via VBA die Instanz Y erstelle kann ich auf Y jederzeit zugreifen aber ich kann mir z.B von Y aus nicht die WorkbooksAufkistung des "normal" Excel bekucken.
    dera

    Comment


    • #3
      Hallo Dera,
      erstmal danke für deine Antwort (bist der erste überhaupt, auch in anderen Foren).
      Das Problem ist das die Instanz Y von einem anderem Programm geöffent wird.

      Hab im netz folgendes gefunden

      Declare Function GetWindowThreadProcessId Lib "user32.dll" ( _
      ByVal hwnd As Long, _
      lpdwProcessId As Long) As Long

      http://www.vbarchiv.net/api/details....hreadprocessid

      nur leider bin ich da mit meinem Latein am ende und komme nicht weiter. Vieleicht kann man ja über Thread-ID und/oder Prozess-ID an die zweite Instanz kommen. Kannst dir das ja mal ansehen und dich wieder melden.

      Gruß
      Olaf

      Comment


      • #4
        Mittels VBA andere Excel Instanz ansprechen

        Hallo Olaf
        Genau das war auch mein Problem, ich habe in VB6 per "Dim Y as New Excel.Application" die Instanz Y erstellt und konnte dann damit nichts anfangen weil die laufende Excel-Instanz eine andere war.
        Dann habe ich auch verschiedene Foren gepostet und mehrfach den Vorschlag bekommen die oben genannte Api-funktion zu nutzen, aber immer gleich mit dem Hinweis die Finger davon zu lassen. Die Funktion ermittelt meines Wissens die Fensternummer von Excel und man kann dann Excel mit SendKeys fernsteuern mit allen Risiken die Api-Funktion in sich haben. Wenn man bei den Parametern irgendwas verkehrt macht(da ist Api sehr nachtragend) sendet man seine Keys womöglich sonstwohin und dann wer weiss??
        Ich habe damals mein Konzept verworfen und ein Excel-Add erstellt,was das eigentliche Problem nicht gelöst hat.
        Also ich kann die dir nicht wirklich helfen aber ich kann dir sagen das es da Leidensgenossen gibt.
        dera

        Comment


        • #5
          Hallo Dera,
          na dann bleibt mir wohl nichts anderes übrig als zu unserer IT zu gehen und da mal anzufragen ob nich die Daten die ich brauch direkt aus der Datenbank ziehen kann. Das wird bestimmt nicht so einfach (hab sowas noch nicht gemacht) aber zur Not gibt es ja gute Leute in Foren .

          Wenn du doch noch was finden solltest oder dir was anderes einfällt ich teibe mich meißt bei www.excel-center.de rum oder du schreibst mir an meine E-mail (weiß nicht ob das von hier aus geht).

          Wie auch immer vielen Dank für deine Hilfe.

          Gruß
          Olaf

          Comment


          • #6
            Mittels VBA andere Excel Instanz ansprechen/Datenbankzugriff

            Hallo nochmal
            Was habe die Excel-Instanzen jetzt mit dem Zugriff auf Datenbanken zu tun?
            Datenbank Operationen sind eigentlich nirgendwo ein Probelm. Ob VB, VBA oder sonstwas, an Datenbankprogrammierung kommt man als Programmierer früher oder später nicht vorbei. Das ist beim zweiten hinsehen auch nicht sonderlich kompliziert und entpuppt sich, wenn mans kapiert hat, als mächtiges Werkzeug.
            Da Excel eigentlich auch nur eine Datenbank ist "kann" man das auch hier tun. Was machen jetzt die Gänsefüße am "kann"? Wenn man den Datenbankzugriff auf Excel versucht beginnt ein neues Leiden. Laufzeitfehler "Installierbares ISAM nicht gefunden". Den Fehler kann man an einem ruhigen Samstag Abend bei einer Flasche Pils an seinem Heimrechner lösen aber wenn man dann Montag-Früh das Ergebnis stolz in die Firma trägt... siehe oben.
            Am einfachsten sind Zugriffe auf Access Datenbanken.
            Jetzt habe ich wieder nur gelabert und keinem geholfen.
            dera

            Comment


            • #7
              Hi Dera,
              Was habe die Excel-Instanzen jetzt mit dem Zugriff auf Datenbanken zu tun?

              Mein Programm das die zweite Instanz öffnet, bezieht die Daten für die Tabelle aus einer Datenbank. Da ich bisher noch nicht diesbezüglich gemacht habe muss ich mich da erst mal durch fummeln.
              G ruß
              Olaf

              Comment

              Working...
              X