Automazione Vba Excel Iexplorer

Anonimo
2015-09-28T14:44:09+00:00

Buongiorno, ripropongo un mio problema che avevo già segnalato utilizzando Access. Visto che il comando Sendkeys in access non funziona, ho riscritto il tutto in VBA Excel.

Da Vba lancio Iexplorer e visualizzao un sito (intranet)

Completo un campo di testo che fa da filtro e clicco il tasto ricerca.

Mi compare nella stessa pagina web, una tabella (una riga) contenente dei campi che risco a leggere con "INNERHTML"

Terminata la lettura della tabella metto il flag nella checkbox relativa alla riga per selezionarla e clicco il tasto Stampa.

A questo punto si apre un'alra istanza di Iexplorer, nella quale viene visualizzato un report pdf . (fino ad ora tutto con vba).

Ora utilizzando mouse e tastiera riesco a eseguire sulla seconda istanza:

Alt + m + z  =  Seleziona tutto

Alt + m + p =  Copia

etc etc

Naturalmente sono settimane che cerco la soluzione sui vari siti ma non ho combinato niente.

Come faccio a governare questa seconda istanza di IE?

Con Vba ho provato ad utilizzare:

"AppActivate ("http://www.aaa.it/riepilogoOperazione?listaOperazioni=3317320141105ESAFI085207062"), True"

per dare il focus alla finestra e poter eseguire Sendkeys "%mz" Seleziona tutto e "%mp" Copia, ma non riesco a posizionarmi  e quindi il Sendkeys mi viene eseguito nella finestra di Debug di Excel.

Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

2 risposte

Ordina per: Più utili
  1. Anonimo
    2015-09-29T15:22:49+00:00

    Finalmente ho trovato ciò che cerco da tempo (molto), nel tuo sito tramite l'articolo "ProvaPdf"  nel modulo "mPdfToTxt". In verità ci ero riuscito con l'ausilio di Adobe Professional (avendo trovato in giro un modulo "pdf2txt".

    Il tuo modulo, che riporto per comodità, utilizza il comando Sendkeys che consente di utilizzare la tastiera per le varie funzionalità.

    ________________________________________________________________________________________

        For Each objFile In objFolder.Files

            If LCase(Right(objFile.Name, 3)) = "pdf" Then

                myReturn = Shell("C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe " & sPath & objFile.Name, vbNormalFocus)

                sPath = ThisWorkbook.Path & "\Report"

                Application.Wait (Now + TimeValue("0:00:03"))

                SendKeys "%F", True

                SendKeys "v", True

                SendKeys "s", True

                Application.Wait (Now + TimeValue("0:00:01"))

                MsgBox "STOP"

                SendKeys "%S", True

                Application.Wait (Now + TimeValue("0:00:01"))

                SendKeys "%F", True

                SendKeys "e", True

                Application.Wait (Now + TimeValue("0:00:02"))

            End If

        Next

    ____________________________________________________________________________________

    Per il momento avrei tre domande:

    1. Utilizzando il Sendkeys, non è possibile fare debug ?
    2. Quale variabile del "filedialog" devo utilizzare per salvare in uno specifico path il file di testo, da settare quindi prima di "SendKeys "%S", True"?
    3. In questo esempio apri un file pdf già esistente, mentre nel mio caso il file pdf viene visualizzato nel browser dopo un click eseguito in regime di automazione vba excel IExplorer. Come posso agganciarlo?

    Per il momento tante grazie per questo articolo che mi ha aperto un mondo.

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-09-28T15:24:35+00:00

    Devi:

    • istanziare un oggetti I.E.
    • quindi gestire il document aperto e i suoi oggetti

    Inserisci in un modulo standard ed esegui il codice qui sotto:

    Public Sub m()

        Dim objIE As Object

        Dim s As String

        Set objIE = CreateObject("InternetExplorer.Application")

        objIE.Visible = True

        objIE.Navigate ("http://www.maurogsc.eu/prove/paginatest.htm")

        Application.Wait (Now + TimeValue("0:00:05"))

        s = objIE.document.All("testo").innerText

        MsgBox s

    '    objIE.Quit

    '    Set objIE = Nothing

    End Sub

    Puoi vedere l'oggetto testo nel html della pagina che apri. Io non so come si chiamano gli oggetti della pagina html che vai ad aprire nel tuo progetto.

    Comunque, mi sembra di aver già risposto ad un quesito come il tuo chiedendo di rivolgere la domanda anche nel forum qui sotto:

    La risposta è stata utile?

    0 commenti Nessun commento