Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1304to1308
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

To Martin: => Dropdown

To Martin: => Dropdown
18.03.2013 14:31:06
Albert
Hi Martin,
funktioniert wunderbar!
Herzlichen Dank.
Nun muss ich den nächsten Submit-Button erreichen, der dann den Standort übernimmt und zurück ins erste IE-Fenster springt.
Das nächste Projekt...
Gruß
A.

28
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Submit
18.03.2013 18:43:26
Anton
Hallo Albert,
ungetestet:
Sub SelectItem()
Dim objIE As Object, objSW As Object, objCbo As Object
Dim k As Integer
Set objSW = CreateObject("Shell.Application")
For Each objIE In objSW.Windows
If InStr(1, UCase(objIE.FullName), "IEXPLORE.EXE")  0 Then
If objIE.LocationURL = "http://s05033:8080/jsp/epctrl.j**" Then 'anpassen
Do: Loop Until oIE.Busy = False
Do: Loop Until oIE.Busy = False
Do: Loop Until oIE.document.readyState = "complete"
Set objCbo = objIE.document.getElementById("pdvvStandort")
If Not objCbo Is Nothing Then
For k = 0 To objCbo.Options.Length - 1
If objCbo.Options(k).Text = "Berlin" Then
objCbo.SelectedIndex = k
Exit For
End If
Next
End If
objIE.document.getElementById("doScriptAction").submit
Exit For
End If
End If
Next
End Sub

mfg Anton

Anzeige
AW: Submit
19.03.2013 07:30:34
Albert
Moin Anton,
ich hab die Adresse angepasst, nun wird ein Objektfehler angezeigt und die erste Loop-Zeile markiert.
Muss jetzt bis Mittags weg, teste später nochmals und geb Feedback.
Danke vorerst.
Gruß
A.

Submit
19.03.2013 08:07:56
Anton
Hallo Albert,

Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.document.readyState = "complete"

mfg Anton

@Anton
19.03.2013 09:10:55
Martin
Hallo Anton,
da du aus meinem Code die "Do...Loop"-Anweisung mit der Boolean-Variable entfernt hast, möchte ich dir kurz den Grund meiner Verwendung dieser Anweisung erläutern:
Anscheinend dauert es zu lange bis das neue IE-Fenster geöffnet und erkannt wird (...siehe Alberts Antwort: https://www.herber.de/forum/messages/1304482.html ). Aus diesem Grund habe ich diese "Do...Loop"-Anweisung eingebaut, die auf das IE-Fenster "wartet". Wenn alle IE-Fenster abgesucht werden bevor das gesuchte Fenster vorhanden ist, wird das gesuchte Fenster nicht gefunden. Wenn du Bedenken hinsichtlich einer Endlosschleife hast, wäre vielleicht die Ergänzung eines Timers mit einer festgelegten "Time-Out"-Grenze sinnvoll.
Viele Grüße
Martin

Anzeige
AW: To Martin: => Dropdown
19.03.2013 11:46:03
Albert
Hi Martin, hi Anton,
nun funktioniert auch das Submit... :)
Die Rückmeldung vom System lautet nun "Diese Mappe existiert nicht!".
Ich denke, es kommt von der Standortauswahl, dass das Wort mit der Maus ausgewählt werden muss/soll.
Nächstes Rätsel...
Gruß
A.

AW: To Martin: => Dropdown
19.03.2013 16:46:18
Martin
Hallo Albert,
ehrlich gesagt habe ich keine Ahnung warum diese Rückmeldung kommt. Eine "Mauspflicht" schließe ich relativ sicher aus.
Neuer Versuch: Wir schicken das Formular diesmal direkt mit einem Klick des Submit-Buttons ab, vielleicht funktioniert das ja besser. Probiere mal folgendes Makro aus: https://www.herber.de/bbs/user/84455.txt
Viele Grüße
Martin

Anzeige
AW: To Martin: => Dropdown
20.03.2013 08:20:04
Albert
Moin Martin,
selbiges Problem. Ich habe das Gefühl, dass es reibungsloser läuft.
Dennoch kommt die Rückmeldung: Meldung von Website "Diese Mappe existiert nicht!".
Wähle ich es manuell aus, findet ein Ladezyklus statt, der einige Sekunden dauert.
Zum wahnsinnig werden...
Dank und Gruß
A.

so vllt:(ungetestet):
20.03.2013 13:31:21
Anton
Hallo ,
Sub SelectItem()
Dim objIE As Object, objSW As Object, objCbo As Object
Dim k As Integer
Set objSW = CreateObject("Shell.Application")
For Each objIE In objSW.Windows
If InStr(1, UCase(objIE.FullName), "IEXPLORE.EXE")  0 Then
If objIE.LocationURL = "http://s05033:8080/jsp/epctrl.j**" Then 'anpassen
Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.document.readyState = "complete"
Set objCbo = objIE.document.getElementById("pdvvStandort")
If Not objCbo Is Nothing Then
For k = 0 To objCbo.Options.Length - 1
If objCbo.Options(k).Text = "Berlin" Then
objCbo.SelectedIndex = k
Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.document.readyState = "complete"
Exit For
End If
Next
End If
objIE.document.getElementById("doScriptAction").submit
Exit For
End If
End If
Next
End Sub

mfg Anton

Anzeige
AW: so vllt:(ungetestet):
20.03.2013 13:59:30
Albert
Hi Anton,
same shit! Der ActionButton funktioniert.
Doch die Standortübergabe bereitet noch immer Probleme... Herrschaft!
Ich dank euch beiden für eure Geduld und Mühe.
Gruß
Albert

noch ein Versuch:
20.03.2013 18:36:45
Anton
Hallo Albert,

Set objCbo = objIE.document.getElementById("pdvvStandort")
If Not objCbo Is Nothing Then
For k = 0 To objCbo.Options.Length - 1
If objCbo.Options(k).Text = "Berlin" Then
objCbo.SelectedIndex = k
objCbo.onchange
Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.Busy = False
Do: Loop Until objIE.document.readyState = "complete"
Exit For
End If
Next
End If

mfg Anton

Anzeige
AW: noch ein Versuch:
21.03.2013 07:37:23
Albert
Moin Anton,
hab deinen Code eingefügt und des Makro bleibt beim objCbo.onchange stehen.
Laufzeitfehler 438 - Objekt unterstützt diese Eigenschaft oder Methode nicht.
Muss bis mittags in Meetings. Sobald ich zurück bin, schau ich nochmal danach.
Dank und Gruß
A.

AW: noch ein Versuch:
21.03.2013 10:24:19
Anton
Hallo Albert,
lass folgenden Code durchlaufen und poste die Ausgabe des Direktfensters
           Set objCbo = objIE.document.getElementById("pdvvStandort")
If Not objCbo Is Nothing Then
Debug.Print objCbo.innerhtml
End If

mfg Anton

Anzeige
AW: noch ein Versuch:
21.03.2013 14:33:14
Albert
Hi Anton,
das Direktfenster gibt die Standortwerte wieder, die ich als HTML schon gepostet hatte.
Ich hab mich mal durchgearbeitet und Haltepunkte gesetzt.
Hierbei ist mir aufgefallen, dass ein Fehler auftritt, BEVOR der Standort übergeben wird.
D.h. beim Seitenaufbau muss etwas stattfinden, was den Fehler "Mappe existiert nicht!" hervorruft,
aber durch unsere bisherige Diskussion nicht aufgetaucht ist.
Kann es mit einem Ladezustand oder ähnlichem zu tun haben?
Gruß
A.

Sorry
21.03.2013 17:01:30
Anton
Hallo Albert,
aber ohne Zugriff auf die Seite ist es kaum möglich dir weiter zu helfen.
mfg Anton

Anzeige
AW: Sorry
22.03.2013 07:35:30
Albert
Moin Anton,
wie darf ich das verstehen? Leider kann ich dir nur den HTML-Code zeigen, denn es ist eben unser Intranet.
Gruß und schönes Wochenende
A.

AW: Sorry
22.03.2013 08:22:50
Anton
Moin Albert,
Ich hab mich mal durchgearbeitet und Haltepunkte gesetzt.
Hierbei ist mir aufgefallen, dass ein Fehler auftritt, BEVOR der Standort übergeben wird.
D.h. beim Seitenaufbau muss etwas stattfinden, was den Fehler "Mappe existiert nicht!" hervorruft,
aber durch unsere bisherige Diskussion nicht aufgetaucht ist.
Kann es mit einem Ladezustand oder ähnlichem zu tun haben?

Das sind alles Fragen, die nur du, als derjenige, der die Seite zur Verfügung hat, beantworten kann.
Nur das wollte ich mit meiner letzten Antwort sagen.
PS.Eine Frage hätte ich auch noch:
warum muss das Alles über Excel gemacht werden, wenn es schon übers Intranet realisiert ist?
mfg Anton

Anzeige
AW: Sorry
22.03.2013 10:45:04
Albert
Hi Anton,
jetzt versteh ich was du meinst.
Hintergrund ist, dass ein Kollege ein Deckblatt mit Informationen erstellt und dies ausdruckt.
Anschließend gibt er die selbigen Informationen in das "Intranet" nochmals ein. Problematisch daran ist,
dass dieses System ein Zukauf ist und nur teuer bearbeitet wird.
Nach einer gewissen Zeit muss der Kollege die gleichen Informationen in ein zweites System eingeben.
Mein Ansatz war eben, dass man es einmal schreibt und dann mittels Makros in die zwei verschiedenen
Systeme importiert.
Nun ja, dann muss ich mich nochmal hinsetzen und gucken, woran es scheitert.
Dank dir auf alle Fälle für deine Mühe.
Gruß
A.

Anzeige
AW: To Martin: => Dropdown
20.03.2013 08:30:19
Martin
Hallo Anton,
ich habe wirklich keine Ahnung was die Ursache sein könnte. Entferne doch mal bitte folgende Zeile aus meinem Code:
objIE.document.getElementById("doScriptAction").Click
Dann klicke bitte manuell auf den Submit-Button. Es würde mich einfach interessieren, ob die Fehlermeldung auch jetzt wieder erscheint.
Viele Grüße
Martin

AW: To Martin: => Dropdown
20.03.2013 10:18:33
Albert
Hi Martin,
du hattest den richtigen Riecher... Nicht der Submit-Button war das Problem, sondern die Wortübergabe des Standortes macht das Problem.
Gruß
Albert

AW: To Martin: => Dropdown
20.03.2013 13:04:45
Martin
Hallo Albert,
offen gesagt habe ich noch immer keine Ahnung wo das Problem liegt. Denn der Submit-Button wird (bzw. wurde) nur dann ausgelöst, wenn sowohl das DropDown als auch der Eintrag innerhalb des DropDowns gefunden wurden. Demzufolge scheint es in dieser Zeile das Problem zu geben:
objCbo.SelectedIndex = k

Nun stellt sich die Frage, warum der Eintrag plötzlich nicht mehr ausgewählt wird, obwohl es doch schon funktioniert hatte. Leider weiß ich nicht woran es liegen könnte. Alternativ könnten wir es noch so probieren:
objCbo.Options(k).Selected = True
Sonst bin auch ich mit meinem Latein am Ende.
Viele Grüße
Martin

AW: To Martin: => Dropdown
20.03.2013 14:51:30
Martin
Hallo Albert,
erhalte ich auch eine Antwort?
Viele Grüße
Martin

AW: To Martin: => Dropdown
20.03.2013 15:20:53
Albert
Hi Martin,
Entschuldigung. Ich hab in der Forumsliste nicht gesehen, dass sich meine Antwort nicht unten anreiht.
Sorry, vielmals.
Beide Zeilen bewirken noch immer die genannte Fehlermeldung, dass die Mappe nicht existiert.
Demzufolge denke ich mal, dass es mit dem Value vielleicht zu tun hat, den ich aus der Exceltabelle übermitteln will?
In der Zelle steht z.B. Berlin und in dem Code steht "Berlin". Gleiche Fehlermeldung.
Ich will man noch einen Gedanken in den Ring werfen. Wenn ich die combobox manuell anwähle, die Taste B drücke, dann kommt Berlin.
Vielleicht kommt die Combobox nicht wirklich damit klar, dass man ihr einen Wert eintrichtert?
Dank auch an dich nochmal für einen Einsatz.
Gruß
Albert

Nachtrag
20.03.2013 15:25:58
Albert
Hi Martin, hi Anton,
ich hab ein objCbo.fireevent ("OnClick") eingebaut. Leider weiß ich (noch) nicht, was es bewirkt.
Ein FireEvent("Onclick") hab ich auch im HTML gefunden, aber ich kann die Struktur nicht mehr herstellen.
Mir fehlt eben nun die Zeile, in der es eigentlich steht
Gruß
A.

AW: Nachtrag
20.03.2013 15:58:24
Martin
Hallo Albert,
ich kann dir nur noch heute helfen, da ich in nächster Zeit voll ausgelastet sein werde. Bitte lasse mal folgenden Code durchlauf (...ohne Änderungen von dir, indem irgendeine Zelle ausgelesen wird):
https://www.herber.de/bbs/user/84469.txt
Bitte poste mir das Ergebnis aus dem Direktfenster.
Viele Grüße
Martin

AW: Nachtrag
20.03.2013 18:05:17
Martin
Hallo Albert,
ich verabschiede mich jetzt aus diesem Thread. Hinsichtlich des Auslesens deines Ortes aus der Zelle würde ich an deiner Stelle mit Clean und Proper den Text aus der Zelle "bereinigen", um mögliche Unstimmigkeiten (z.B. wegen Leerzeichen oder Groß-/Kleinschreibung) zu vermeiden:
Sub CleanString()
Dim strOrt As String
strOrt = "berlin  "
With Application.WorksheetFunction
strOrt$ = Trim(.Clean(.Proper(strOrt)))
End With
Debug.Print strOrt
End Sub
Wegen deinem Wunsch den Abgleich allein über den ersten Buchstaben vorzunehmen, müsste nur folgende Codezeile geändert werden:
If Left(objCbo.Options(k).Text, 1) = Left("Berlin", 1) Then
Ich drücke dir die Daumen, dass Anton & Foren-Mitglieder dich erfolgreich unterstützen werden.
Viele Grüße
Martin

AW: Nachtrag
21.03.2013 07:30:33
Albert
Guten Morgen Martin,
vielen herzlichen Dank für deine Hilfe. Ohne dich und Anton wäre ich im wahrsten Sinne des Wortes
aufgeschmissen gewesen.
Hinsichtlich deines Codes kam im Direktfenster:
1. Versuch erfolgreich
2. Versuch erfolgreich
Das mit Clean und Proper versuche ich gleich nach den heutigen Meetings.
Danke nochmals
Gruß
A.

AW: To Martin: => Dropdown
20.03.2013 15:41:30
Albert
T

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige