Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Form Jquery e Excel

  1. #1
    Utente di HTML.it L'avatar di exSnake
    Registrato dal
    Oct 2011
    residenza
    Salerno
    Messaggi
    3

    Form Jquery e Excel

    Salve, ho provato a postare questa discussione che sto per porre alla vs attenzione su archiforum ma non abbiamo trovato alcuna soluzione e un gentile utente mi ha detto di chiedere a voi in quanto "piu esperti" di html e affini, scusate se ve la ricopio, ma non trovo modo migliore per spiegare il mio problema che riguarda principalmente l'accesso da Excel a un form jquery.

    Quello che sto cercando di fare è: Tramite una macro in VBA di excel, sto provando ad importare dei dati da una pagina web,l'inghippo sta nel fatto che la pagina web, quando aperta, mostra solamente i primi 20 record, per far si che ne mostri più di 20, bisogna utilizzare una listbox posta infondo alla pagina e cambiarne il value a 3000, quando accade cio, con un semplice click del mouse la "tabella" presente all'interno della pagina web si riaggiorna caricando tutti i record. Quello che non so come fare è implementarlo in excel.

    Riesco a lanciare la "ricerca" ma non a impostare quel value a 3000.

    La pagina web l'ho salvata ed è questa:

    http://www.mediafire.com/download/iu3e1lbixvdd9ad

    Allora, mi spiego meglio e posto la macro in VBA completa:



    codice:
    Sub Lista_esercenti()
    
    
    Set ie = CreateObject("InternetExplorer.Application")
    
    
    urlContabili = "http://customers.betplus.it/awg2/gestori/ubicazioni/raccoltaUbicazioneNew!viewForm.action?openMenu=97"
    
    
    With ie
        .Visible = True
        .Navigate urlContabili
        Do While .Busy: DoEvents: Loop
        Do While .readyState <> 4: DoEvents: Loop
        .document.forms("ricerca").getelementsbytagname("select")("rataSelezionata").Value = "226" 'numerorata
        Do While .readyState <> 4: DoEvents: Loop
        Set elems = .document.forms("ricerca").getelementsbyclassname("button")
        For Each e In elems
                e.Click
                Exit For
        Next e
        
        'FINO A QUI FUNZIONA TUTTO CORRETTAMENTE
        'DA QUI IN POI NON FA QUELLO CHE DEVE
        
        Set ao = .document.getelementsbytagname("select")
    
    
                For Each a In ao
                    If a.className = "ui-pg-selbox" Then
                        a.selectedindex = 6
                        .document.forms("ricerca").submit 'con submit da errore
                    End If
                Next a
        myStart = Timer
            Do
        DoEvents: If Timer > myStart + 3 Or Timer < myStart Then Exit Do
    Loop
    End With
    
    
    
    
    ' IMPORTAZIONE DATI
    
    
    riga = 23
    
    
    Sheets("Esercenti").Select
    On Error Resume Next
    For Each myItm In ie.document.getelementsbytagname("TABLE")
        For Each trtr In myItm.Rows
            If trtr.ID <> "" Then
                sel = 0
                For Each tdtd In trtr.Cells
                    sel = sel + 1
                    If sel = 2 Or sel = 4 Or sel = 7 Or sel = 14 Then
                        Select Case sel
                            Case 2
                                Cells(riga, 4) = tdtd.innertext
                            Case 4
                                Cells(riga, 2) = tdtd.innertext
                            Case 7
                                Cells(riga, 3) = tdtd.innertext
                            Case 14
                                Cells(riga, 5) = CLng(tdtd.innertext)
                                If Err.Number = 13 Then
                                    Cells(I, J + 1) = tdtd.innerHTML
                                End If
                        End Select
                    Else: If sel > 14 Then Exit For
                    End If
                Next tdtd
                riga = riga + 1
            End If
        Next trtr
    Next myItm
    
    
    End Sub

    Se utilizzo submit mi da quest'errore:


    http://prntscr.com/35v877


    Una volta riempiti i form devo utilizzare "Click" sul tasto ricerca sarebbe, ho trovato questo comando cercando in rete.
    Però il problema è che quando utilizzo click, mi visualizza solo i primi 20 elementi, per visualizzarne 3000 devo andare infondo alla tabella, cliccare su:






    una volta fatto accade questo:





    e quando ha finito di caricare mi escono tutti i record disponibili.


    Ovviamente con excel, nonostante cambi il "value" di quel modulo, non accade niente.
    "E non ci sarà più Dio, perché ci sono Io!"

  2. #2
    Utente di HTML.it L'avatar di exSnake
    Registrato dal
    Oct 2011
    residenza
    Salerno
    Messaggi
    3
    Ho sbagliato sezione o nessuno sa aiutarmi?
    "E non ci sarà più Dio, perché ci sono Io!"

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,780
    Quote Originariamente inviata da exSnake Visualizza il messaggio
    Ho sbagliato sezione o nessuno sa aiutarmi?
    Ciao, forse un po' tutt'e due. L'argomento interessa più aree di programmazione e può essere difficile collocarlo in una sezione specifica ma allo stesso tempo, paradossalmente, l'argomento stesso può risultare specifico per il tipo di applicazione trattata, proprio perché interessa più aree di programmazione che non si incontrano assieme facilmente, quindi risulta poco ordinario.

    Ad ogni modo, anche se non mi intendo troppo di vba, provo a darti qualche idea in base da quanto ho potuto capire dalle informazioni che hai postato.

    Ho dato uno sguardo alla pagina salvata ma, quando provo a modificare il valore della select, sembra non avvenga niente a livello di eventi sulla pagina. Per cui è difficile capire dove poter meglio intervenire. Sarebbe buono vedere la pagina in funzione, ma capisco che probabilmente non si può avere facile accesso online.

    Comunque mi salta in mente una prima idea guardando il tuo vba.
    Da quanto mi pare di capire, in questa riga tu stai impostando il valore dell'altra select (rataSelezionata), giusto?
    codice:
    .document.forms("ricerca").getelementsbytagname("select")("rataSelezionata").Value = "226"
    Ora mi chiedo, non puoi fare la stessa cosa con la select in questione, cioè andare a modificare semplicemente il value?
    Avresti una cosa del genere:
    codice:
    Set ao = .document.getelementsbytagname("select")
    
                For Each a In ao
                    If a.className = "ui-pg-selbox" Then
                        a.Value = "3000"
                    End If
                Next a
    Inoltre credo tu possa usare getelementsbyclassname("ui-pg-selbox") per selezionare quella select più facilmente senza l'uso di un "for each", sempre che funzioni come javascript e sempre che in tutto il documento ci sia solo quell'elemento con tale classe. Certo, a livello di gestione degli elementi sarebbe meglio che anche questa select, come l'altra, avesse un id e un name cosi da poterla selezionare univocamente.

    Comunque, il codice potrebbe essere una cosa del genere:
    codice:
    .document.getelementsbyclassname("ui-pg-selbox")[0].Value = "3000"
    Prova e facci sapere.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Utente di HTML.it L'avatar di exSnake
    Registrato dal
    Oct 2011
    residenza
    Salerno
    Messaggi
    3
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao, forse un po' tutt'e due. L'argomento interessa più aree di programmazione e può essere difficile collocarlo in una sezione specifica ma allo stesso tempo, paradossalmente, l'argomento stesso può risultare specifico per il tipo di applicazione trattata, proprio perché interessa più aree di programmazione che non si incontrano assieme facilmente, quindi risulta poco ordinario.

    Ad ogni modo, anche se non mi intendo troppo di vba, provo a darti qualche idea in base da quanto ho potuto capire dalle informazioni che hai postato.

    Ho dato uno sguardo alla pagina salvata ma, quando provo a modificare il valore della select, sembra non avvenga niente a livello di eventi sulla pagina. Per cui è difficile capire dove poter meglio intervenire. Sarebbe buono vedere la pagina in funzione, ma capisco che probabilmente non si può avere facile accesso online.

    Comunque mi salta in mente una prima idea guardando il tuo vba.
    Da quanto mi pare di capire, in questa riga tu stai impostando il valore dell'altra select (rataSelezionata), giusto?
    codice:
    .document.forms("ricerca").getelementsbytagname("select")("rataSelezionata").Value = "226"
    Ora mi chiedo, non puoi fare la stessa cosa con la select in questione, cioè andare a modificare semplicemente il value?
    Avresti una cosa del genere:
    codice:
    Set ao = .document.getelementsbytagname("select")
    
                For Each a In ao
                    If a.className = "ui-pg-selbox" Then
                        a.Value = "3000"
                    End If
                Next a
    Inoltre credo tu possa usare getelementsbyclassname("ui-pg-selbox") per selezionare quella select più facilmente senza l'uso di un "for each", sempre che funzioni come javascript e sempre che in tutto il documento ci sia solo quell'elemento con tale classe. Certo, a livello di gestione degli elementi sarebbe meglio che anche questa select, come l'altra, avesse un id e un name cosi da poterla selezionare univocamente.

    Comunque, il codice potrebbe essere una cosa del genere:
    codice:
    .document.getelementsbyclassname("ui-pg-selbox")[0].Value = "3000"
    Prova e facci sapere.
    Ti ringrazio innanzitutto per la risposta, mi conforta il fatto che qualcuno abbia letto il mio topic

    Certo che è una cosa che racchiude vari linguaggi di programmazione oltre che varie conoscenze, considerate che ho provato a fare questa domanda su un forum di VBA che frequento e mi han rimandato qui per chiedere ulteriori lumi dato che neanche loro sono riusciti a venirne a capo.

    Per quanto riguarda il for, probabilmente funzione come tu hai detto, non conoscendo molto il VBA ho preso per buono la prima cosa che mi funzionava.

    Invece per il value, si, ho provato ad impostarlo a 3000, lo imposta, il value cambia, ma non accade nulla. Cosa non accade ti chiederai?
    Beh se vedi nella pagina salvata che ho postato, per un micro secondo quando provi a cliccare su 3000, uscirà caricamento all'interno della tabella, quello che succede nella pagina salvata in quel micro secondo, succede ugualmente sulla pagina web reale ma si prolunga per più tempo, riaggiornando la tabella e mostrando X record quando è il value sul quale si è cliccato.

    Purtroppo ho provato in svariati modi ma nessuno mi porta a soluzione, anche cambiare il value a 3000 e poi fare la ricerca non mi porta ad avere i record desiderati, questo sito è stato tra l'altro aggiornato da poco, prima bastava inserire "step=3000" all'interno dell'url per avere appunto, tutti i record disponibili.

    Il metodo .submit mi riporta ad una pagina di errore, quello che servirebbe è qualcosa che simuli il click del mouse in vba, ma a quanto pare non esiste una cosa del genere.

    Se qualcuno è disposto ad aiutarmi, posso anche fornire un user e password per provare.

    Seguo molto questo forum, pero non ho mai postato, ecco perche sono iscritto dal 2011 e ho solo 3 post, anche perche non lavoro molto in html.

    Ringraziero chiunque riuscira a risolvermi quest'enigma
    "E non ci sarà più Dio, perché ci sono Io!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.