Hallo zusammen,
sehr unaussagekräftige Überschrift, ich weiß.
Ich habe folgendes Problem:
Ich muss wöchentlich Daten aus einem Excel Blatt (das wird mir so geliefert) in ein anderes Programm einpflegen. Momentan sind das etwa 200 Zeilen mit jeweils 5 Datensätzen, damit braucht das Skript eine dreiviertel Stunde.
Ab nächster Woche werden das aber 1500 sein, das heißt es dauert dann einfach zu lang.
Eine andere Schnittstelle als die GUI existiert leider nicht bzw ich habe keine Mittel und Wege, um darauf zuzugreifen.
Ich möchte (muss) also die Geschwindigkeit des Skriptes etwas (radikal) erhöhen.
Ich denke, da kann ich am besten bei der Variablenbefüllung aus Excel anfangen.
Momentan hole ich mir die Daten mit STRG+C in die Zwischenablage und speicher sie per ClipGet() in Variablen.
Wenn ich versuche die Geschwindigkeit zu erhöhen, bekomme ich die Fehlermeldung
"Die Zwischenblage kann nicht geleert werden. Möglicherweise verwendet ein anderes Programm die Zwischenablage."
Kann ich das irgendwie umgehen? In was für einem Format müssten mir die Daten vorliegen, damit ich diese (viel) schneller in meine Variablen holen kann? Momentan ist das sehr umständlich, da ich auch viele Sleep() Befehle brauche, um nicht in diesen Fehler zu laufen.
Danach springt das Skript in das nächste Programm. Dort ist eine Maske (Cursor steht bereits auf dem ersten Feld). Die Daten können weitestgehend per Tastaturbefehlen eingegeben werden. (Variable1 -> Tab -> Variable 2 -> Tab (...) -> STRG+S -> Warten auf bmp "erfolgreich gespeichert") .
Allerdings muss ich per Maus zwischendrin auch eine Checkbox anklicken bzw. abhaken. (dafür gibts in dem Programm anscheinend keine Tastenkombination)
Ich habe das per ImageSearch gelöst und die Maus geht von alleine auf dieses Feld und klickt es an. Das ist aber relativ Fehlerträchtig (sehr oft wird das Feld einfach nicht gefunden) und dauert lange. Nun habe ich das per Bildschirmposition gelöst. ( MouseClick("left", X, Y, 1, 1) )
Damit geht mir allerdings die Plattformübergreifende Eigenschaft verloren ODER man muss die Daten bei jeder Workstation anpassen. Diesen Aufwand halte ich für so manchen Anwender aber nicht zumutbar. Gibt es dort eine andere Möglichkeit, das zu lösen?
Vielen Dank im Voraus, ich bin mit meinem Latein echt am Ende.
Liebe Grüße
Alex