Anzeige
Archiv - Navigation
1724to1728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmtes Children einer Application ansprechen

Bestimmtes Children einer Application ansprechen
21.11.2019 09:40:32
Michael
Hallo zusammen,
ich brauche mal bitte eure Hilfe. Ich habe mir einen Code gebastelt, wo ich zuerst identifiziere, ob eine bestimmte Application geöffnet ist. Danach lese ich die Children aus und möchte über eine Userform auf ein bestimmtes Children zugreifen.
Beispiel: Es sind die Children "ses[0]", "ses[1]", "ses[2]", "ses[4]" und "ses[5]" offen. jetzt möchte ich die "ses[5]" ansprechen mit
Set session = Connection.Children(5)
Das funktioniert jedoch nicht, weil nur 5 Children offen sind (0-4). Wie kann ich jetzt auf die "ses[5]" zugreifen?
Ich habe auch schon versucht über den Fensternamen die Fenster direkt anzusprechen, doch hier scheitert es daran, dass ich als Rückgabewert eine Zahl bekomme, mit der ich nichts weiter anfangen kann und keinen Text. (https://www.herber.de/mailing/Fenstername_einer_Drittanwendung_auslesen.htm)
Mit dem Text könnte ich dann direkt sagen, welches Fenster es sein soll, weil diese im Fensternamen durchnummeriert sind. (P01(1), P01(2),.. usw)
Falls jemand eine Idee oder einen ganz anderen Lösungsansatz hat wäre ich ihm sehr Dankbar!
Gruß Michael
Meine Datei: https://www.herber.de/bbs/user/133340.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmtes Children einer Application ansprechen
21.11.2019 09:45:36
Oberschlumpf
Hi Michael,
versuchs doch mal mit
Set session = Connection.Children(4)
Da ja 5 Children offen sind, der Index aber mit 0 beginnt, endet der Index auch bei 4.
Hilfts?
Ciao
Thorsten
AW: Bestimmtes Children einer Application ansprechen
21.11.2019 10:06:18
peterk
Hallo
Ganz versteh ich dein Problem nicht. Wenn nur 5 Children offen sind kannst Du das 6ste nicht ansprechen, da ja nicht vorhannden.
Grundsätzlich: Deine Definition
Dim SapGuiAuto, Application, session, WScript As Object
liefert Dir nicht den gewünschten Typ (SapGuiAuto, Application, session sind vom Type Variant! und nur Wscript wird als Object definiert). Leider muss man in Vba für jede Variable ein "as" verwenden.
Wenn Du deine Objekte genauer unter die Lupe nehmen willst verwende "Überwachung hinzufügen", z.B. für "connection", setze einen Breakpoint nach dem "Set connection" Befehl und Durchsuche die Information deines Objekts im Überwachungsfenster.
Peter
Anzeige
AW: Bestimmtes Children einer Application ansprechen
22.11.2019 16:25:23
Michael
Hallo Oberschlumpf,
ich möchte das Children variabel je nach Auswahl über eine Userform anwählen.
Hallo Peterk,
danke für den Hinweis mit der Definition. Das war mir nicht bewusst.
Nochmal zu meinem Problem:
Ich habe eine bestimmte Anzahl an Children und möchte diese über eine Userform (oder Inputbox) variabel, je nachdem was der User auswählt, nutzen. Ich identifiziere alle offenen Children über deren Namen (Children.Name). Jetzt sind insgesamt 5 von 6 Children mit den Namen "ses[0]", "ses[1]", "ses[2]", "ses[4]" und "ses[5]" offen. Das Children mit dem Namen "ses[3]" ist also geschlossen. Bei meiner Lösung kann ich nicht einfach die Zahl aus dem Namen auslesen und diese als Wert in Children("WERT") packen, weil wenn z.b. "ses[5]" ausgewählt wird, der Wert "5" eingetragen (Children(5)). Meine Lösung hinkt also. Der User möchte "ses[5]" nutzen, aber spricht durch meinen Code Children(5) an, welches es nicht gibt.
Dies ist jetzt nur ein Beispiel, es kann auch sein, dass nur 3 Children mit den Namen "ses[2]", "ses[4]", "ses[5]" offen sind.
Ich wollte nur mal wissen, ob jemand eine bessere Lösung kennt.
Gruß Michael
Anzeige
AW: Bestimmtes Children einer Application ansprechen
22.11.2019 16:39:21
Michael
Hallo,
es kann zum Beispiel auch möglich sein, dass die Children in folgender Reihenfolge angeordnet sind:
"ses[4]", "ses[0]", "ses[1]", "ses[5]" und "ses[2]"
Wenn der Anwender über meine Userform "ses[1]" auswählt, dann würde der Code Children(1) nutzen, weil in meinem Code angenommen wird, dass das Fenster "ses[1]" an zweiter Stelle steht. Richtig wäre jedoch Children(2), weil das Fenster "ses[1]" an dritter Stelle steht, also Children(2) ist.
Vielleicht hat jemand dafür eine Lösung, die korrekte Reihenfolge der Children zu ermitteln.
Gruß Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige