Condividi:        

I.E che fa capricci?

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

I.E che fa capricci?

Postdi Gianca532011 » 17/09/18 11:20

Ciao a tutti,
scrivo qui perchè il sw che propongo è ricavato da lavori prelevati in massima parte da questo forum, quindi ritengo sia un centro di competenza qualificato a darmi aiuto o indicazioni.
Il problema con il quale mi sto scontrando è una macro di scarico dati dal web che a volte funziona e a volte si blocca, pur scaricando i dati.(???)
Quindi presumo ci sia un mio errore di "assemblaggio", di fatto mi dà errorev 91: variabile oggetto o variabile del blocco with non impostata" , e qui si blocca , come detto scarica i dati ma si interrompe senza mai raggiungere la seconda macro "Cerca_copia , con la quale si ha il trasferimento di alcune righe sul foglio Dati. oppure, a volte, non riesce a caricare l'Url , di solito al primo tentativo, al secondo lo carica ma poi si blocca con l'errore di cui sopra .

Non so se mi sono spiegato, comunqe aggiungo immagine errore e il file .Xlsm , per chi volesse dedicarvi un attimo di tempo. :) Grazie

qui il file : http://www.filedropper.com/investscreen2

qui l'errore : http://www.filedropper.com/immagine_5
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Sponsor
 

Re: I.E che fa capricci?

Postdi Anthony47 » 17/09/18 22:04

Con il file che hai pubblicato l'errore e' garantito; perche' su Foglio1 ci sono (vedi riga 5 e 6) delle scritte che falsano l'identificazione dell'ultimo Url inserito; ma in ogni caso tu alla fine dell'esame del primo Url termini la sessione IE che invece servirebbe ancora per esaminare gli indirizzi successivi

Codice: Seleziona tutto
uRiga = Wks.Range("D" & Rows.Count).End(xlUp).Row
Set mIE = CreateObject("InternetExplorer.Application")
For i = 2 To uRiga
  k = 0
'..
'..
  Next mTable
   
Azzera_Variabili:
'..
'..
  mIE.Quit
  Set mIE = Nothing
Next i

Il mio suggerimento e' che sposti il Next da dove e' a PRIMA della riga AzzeraVariabili, in modo da lasciare "vivo" l'oggetto mIE per gli Url successivi

Ovviamente devi anche evitare di alterare l'identificazione degli Url; per questo devi evitare di scrivere in colonna D di Foglio1; e (visto che l'importazione dei dati tabellari avviene proprio su Foglio1, da riga 10 in avanti) forse e' anche meglio che modifichi l'identificazione dell'ultimo url: non uRiga = Wks.Range("D" & Rows.Count).End(xlUp).Row ma
Codice: Seleziona tutto
uRiga = Wks.Range("D9").End(xlUp).Row


Questo pero' ti limita a inserire Url da riga 2 a max riga 8

Sono anche ridondanti le seguenti righe, gia' coperte dalle wait precedenti:
Codice: Seleziona tutto
While mIE.Busy
  Wend
  While mIE.document.readyState <> "complete"
  Wend

Le puoi togliere senza problemi

Infine ti consiglio di eliminare la riga Application.DisplayAlerts = False in modo da avere sempre eventuali indicazioni di warning; la userai solo prima di righe che sai produrranno warning che non ti interessano, avendo l'accortezza di farle subito seguire da Application.DisplayAlerts = True

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: I.E che fa capricci?

Postdi Gianca532011 » 18/09/18 11:11

Grazie Anthony,
con le tue indicazioni la macro di scarico funziona benissimo, senza piu inceppamenti. Però ... era nata per un url alla volta , ora che lavora su max 8 url mi si è creato il problema che ripetendo il ciclo essa salva solo i dati dell'utimo url, di fatto pur scaricando i dati su Foglio1, essa sovrascrive i dati dell'url precedente. In pratica bisognerebbe attivare la macro "cerca_copia" ad ogni URL scaricato.
Ovvero : scarica 1 URL , attivo Cerca_copia, scarico secondo Url, attivo Cerca_copia etc.
Come si può fare ? Avevo pensato aun ciclo for basato su mIE ma nisba ...
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: I.E che fa capricci?

Postdi Gianca532011 » 18/09/18 11:31

Dimenticavo file aggiornato alle tue modifiche.

http://www.filedropper.com/investscreen3
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: I.E che fa capricci?

Postdi Anthony47 » 18/09/18 13:26

Devi "chiamare" la Cerca_Copia prima di ripetere il ciclo sull'url successivo; per questo sposta Call Cerca_Copia e aggiungi questa ClearContents in questa posizione:
Codice: Seleziona tutto
    Next mTable
    Call Cerca_Copia                                  'Spostata qui
    Rows("10:" & mRiga).ClearContents    'Aggiunta
Next i


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: I.E che fa capricci?

Postdi Gianca532011 » 18/09/18 17:52

Provato, ma non chiude l'interrogazione e lo scarico dati del secondo Url. Si interrompe e resta "impappinato" con IE aperto. Porta a termine solo la prima URL , anche con copia valori su fo. Dati :evil:

ciao
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: I.E che fa capricci?

Postdi Gianca532011 » 18/09/18 19:33

Fatto e funzionante, non ci credo nemmeno io ... ma è vero .

Ho risolto inserendo le righe di copia e cancellazione , senza piu chiamare la macro Cerca_copia . In pratica ho seguito il tuo ragionamento inserendo gli esatti intervalli da cancellare o copiare in fo " dati".

Codice: Seleziona tutto
Sheets("Foglio1").Select
        Range("A10:C61").ClearContents
        urFrom = Range("b" & Rows.Count).End(xlUp).Row
        urTo = Sheets("Dati").Range("A" & Rows.Count).End(xlUp).Row + 1
        Range("B63:cb100" & urFrom).SpecialCells(xlCellTypeVisible).Copy _
        Destination:=Sheets("Dati").Range("a" & urTo)
 
  Range("A62:Cb200").ClearContents
  'Rows("10:" & mRiga).ClearContents    'Aggiunta

Next i
     


Ancora Grazie
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: I.E che fa capricci?

Postdi Gianca532011 » 18/09/18 20:14

Rettifica : la macro Cerca_Copia viene ancora chiamata , alla fine .

per tua verifica allego il file : http://www.filedropper.com/investscreen4

Unica cosa strana che non ho capito è come mai il file abbia raggiunto dimensioni cosi eccessive : 21 mega come Xlsm e 12 M com Xls ?
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 324
Iscritto il: 27/05/11 10:18

Re: I.E che fa capricci?

Postdi Anthony47 » 18/09/18 22:53

Fatto e funzionante, non ci credo nemmeno io ... ma è vero
Fai un respiro lungo e rilassati, vedrai che non succede niente di male...

la macro Cerca_Copia viene ancora chiamata , alla fine
Questo succede perche' non hai SPOSTATO quella riga alla nuova posizione, ma l'hai "aggiunta" nella nuova posizione ma l'hai anche lasciata dove era. Insomma devi cancellare la riga Call Cerca_Copia rimasta dopo "Azzera_Variabili"

La dimensione e' sproporzionata perche' il foglio Dati e' corrotto; probabilmente e' stato formattato sull'intera area del foglio. Io ho eliminato tutte le righe da 1000 in avanti (comando "elimina righe") e la dimensione e' ora di circa 150 KB

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "I.E che fa capricci?":

Firestarter fa i capricci.
Autore: usag
Forum: Software Linux
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 71 ospiti