vb version ??

  • VBScript

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von compufreak.

    vb version ??

    Hallo zusammen,
    ich habe "mal wieder" ein anderes Problem und zwar versuche ich aus einem Programm heraus eine Excel Datei zu öffnen und dann soll je nach dem wie viele zeilen in excel ausgefüllt sind, eine bestimmte zelle zb T:2 bis T:300 aus der Excel liste in mein aktiv laufendes Programm kopiert werden... ich weiss ist etwas kompliziert, aber die Frage ist... ist das möglich und hat jemand tipps, wie das zu lösen ist, das prg akzeptiert auf jeden fall vb, denn mit:

    Visual Basic-Quellcode

    1. sub subSub1_()
    2. autECLSession.autECLOIA.WaitForAppAvailable
    3. autECLSession.autECLOIA.WaitForInputReady
    4. Dim objXL
    5. Dim objWkb
    6. Dim objWks
    7. Set objXL = CreateObject("Excel.Application")
    8. objXL.visible = true
    9. objXL.Workbooks.open "C:\FV\datei.xls"
    10. Set objWks = objXL.Workbooks("datei.xls").Worksheets("Tabelle1")

    öffnet das PRG Excel... jetz muss also nur noch eine bestimmte zeile in Excel geprüft werden, zb. X:1 wo steht, wie viele zeilen zu bearbeiten sind(das steht in Excel) und dann soll so oft, wie es zeilen gibt den inhalt der zellen T:2 bis T:? in das programm eingelesen werden(incl. ENTER und F19) dabei muss bei jedem durchlauf geprüft werden, ob es einen Fehler gegeben hat und der cursor an eine bestimmte stelle gestellt werden...

    EDIT: es handelt sich wie gesagt NICHT um ein script für Excel !

    Vielen Dank, wenn sich überhaupt einer die Mühe macht, das zu lesen ^^
    Wenn mir da einer eine Lösung sagen kann, falle ich auf die Knie...
    Compufreak

    Bitte Code-Tags verwenden.
    Thema verschoben
    Gruss
    mikeb69

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „mikeb69“ ()

    Visual Basic-Quellcode

    1. sub auslesen()
    2. Dim objXL
    3. Dim objWkb
    4. Dim objWks
    5. Set objXL = CreateObject("Excel.Application")
    6. objXL.visible = true 'muss nicht visible sein ;)
    7. objXL.Workbooks.open "C:\FV\datei.xls"
    8. Set objWks = objXL.Workbooks("datei.xls").Worksheets("Tabelle1")
    9. With objWks
    10. anzahl = .range("X1").value 'der wert bestimmt die anzahl der zeilen
    11. If isnumeric(anzahl) And anzahl > 0 Then 'überprüft ab in telle X1 eine zahl größer 0 steht und obs iene zahl ist
    12. dim ausgabe(anzahl) 'array wird mit anzahl elementen deklariert
    13. For a=0 To anzahl
    14. ausgabe(a) = .range("T" & a+2).value 'hier wird jede zeile von T2 bis T.. in ein array gespeichert
    15. next
    16. else
    17. exit sub
    18. end if
    19. end with
    20. objXL.quit
    21. 'hier musst du nun deine applikation aktivieren
    22. 'und dann kannst du über eine weitere schleife jede einzelne zeile an das programm senden
    23. 'zB
    24. set wshshell = Wscript.createobject("Wscript.Shell")
    25. For a=0 TO Ubound(ausgabe)
    26. Wshshell.sendkeys ausgabe(a) & "{ENTER}" 'das wäre der wert in excel und danach Enter
    27. Wscript.sleep 250 'die zeit zwischen den eingaben musst du halt wissen wie lange es braucht
    28. Next
    29. end sub


    Die Fehlerüberprüfung war mir leider nicht klar, wie sie von statten gehen soll, müsstest näher beschreiben...

    Hoffe es hilft dir, gruß Mono
    Das ist meine Signatur und sie wird wunderbar sein!

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Mono“ ()

    hmm danke mono,

    sieht schon gut aus, kann es im mom leider nicht testen, aber bin mal gespannt, das mit dem visible hatte ichnur gemacht, um zu testen, ob das prg die excel tatsächlich anspricht bzw öffnet ^^

    dh ich könnte später alles unsichtbar machen, daß excel quasi nur ausgelesen wird und die daten die ich brauche in meinem programm eingetragen werden.