Risultati da 1 a 7 di 7

Discussione: lo script si blocca su .connect (err. run time 1004)



  1. #1
    L'avatar di Robert
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    PAVIA
    Messaggi
    11
    Versione Office
    office 2016
    Likes ricevuti
    0
    Likes dati
    0

    lo script si blocca su .connect (err. run time 1004)

    buongiorno a tutti,
    ho un problema con uno script che ha lo scopo di salvare su fogli Excel dati presenti su un sito WEB.
    le info sono in forma di tabelle presenti su più pagine.

    lo script funziona egregiamente salvo che si blocca su .connection, basta dare invio e procede regolarmente. se di effettua il debug e si fanno passare passo passo le istruzioni non si blocca. se nel debug tengo premito F8 si blocca al solito posto.


    ho provato ad inserire uno sleep ma non cambia nulla. utilizzo Excel 2013
    ecco lo script ed in allegato il file che utilizzo

    Codice: 
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim MyPage As String
    Dim MyURL As String
    Dim EndPath As String
    Dim MyFile As String
    
    
    'On Error Resume Next
    
    
    COUNTER = 0
    
    
    inizio_procedura:
    
    
    COUNTER = COUNTER + 1
    
    
    MyFile = "foglio1.xlsx"
    
    
    MyPage = COUNTER
    
    
    MyURL = "URL;http://www.centricommerciali.it/risultati_1024x768.cfm?PageNum_tutte_tabelle=" & MyPage & "&&regioni=Tutte_le_Regioni&provincia=&libero=&Submit=Invia"
    
    
    '
    With ActiveWorkbook.Connections("Connessione")
    .Name = "Connessione"
    .Description = ""
    End With
    Range("A1:D11").Select
    With Selection.QueryTable
    'Sleep 1000
    .Connection = MyURL
    '.CommandType = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = """tutte"""
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
    End With
    Range("A1").Select
    ActiveWorkbook.Connections("Connessione").Refresh
    
    
    
    Range("A1:D11").Select
    Range("D11").Activate
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ChDir "C:\"
    ActiveWorkbook.SaveAs Filename:= _
    MyFile, FileFormat:= _
    xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
    
    EndPath = "C:\foglio1.xlsx"
    
    Kill EndPath
    
    
    'Resume
    GoTo inizio_procedura
    
    
    End Sub
    grazie anticipatamente per la collaborazione
    Robert
    File Allegati File Allegati
    Ultima modifica fatta da:cromagno; 03/02/16 alle 12:37 Motivo: Inserito codice tra i tag "CODE"

  2. #2
    L'avatar di Robert
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    PAVIA
    Messaggi
    11
    Versione Office
    office 2016
    Likes ricevuti
    0
    Likes dati
    0
    Buongiorno,
    qualcuno riesce a darmi una mano?

    Preciso che lo script l'ho fatto io unendo due macro (autogenerate tramite xls 2013) in cui ho inserito le variabili che mi permettono di passare alla pagina successiva.

    Non so quindi se la soluzione che ho utilizzato è la migliore, l'obiettivo è comunque quello di scaricare i dati presenti nelle tabelle pubblicate su un sito WEB...


    Grazie anticipatamente a chi mi darà una mano a uscire da questo problema.

    Robert

  3. #3
    L'avatar di TuttoExcel
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Milano
    Età
    43
    Messaggi
    82
    Versione Office
    Excel 2013
    Likes ricevuti
    19
    Likes dati
    3
    Ciao Robert,
    il problema è nel tempo che ci mette Excel a scaricare i dati, elaborarli e compiere tutte le operazioni del caso. Per risolvere il tuo problema devi dare il tempo ad Excel ed a Windows di far tutto.

    Usare Sleep non serve perché mette tutto in pausa e oltretutto non sai di quanto tempo ha bisogno. Inoltre il BackGroundQuery impostalo come proprietà prima di chiamare il refresh, per esperienza da meno problemi. Detto questo, se modifichi in questo modo dovrebbe funzionare

    sostituisci

    Codice: 
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
    con

    Codice: 
    .WebDisableRedirections = False
    .BackgroundQuery = False
    .Refresh
    DoEvents
    
    e fammi sapere

    a presto
    Condividi la tua conoscenza. E’ un modo per raggiungere l’immortalità. (Dalai Lama)
    Amministratore di www.tuttoexcel.it

  4. #4
    L'avatar di Robert
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    PAVIA
    Messaggi
    11
    Versione Office
    office 2016
    Likes ricevuti
    0
    Likes dati
    0
    OTTIMO!!! PROBLEMA RISOLTO!!!
    funziona tutto correttamente!!!

    grazie per la collaborazione
    Robert

  5. #5
    L'avatar di TuttoExcel
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Milano
    Età
    43
    Messaggi
    82
    Versione Office
    Excel 2013
    Likes ricevuti
    19
    Likes dati
    3
    Citazione Originariamente Scritto da Robert Visualizza Messaggio
    OTTIMO!!! PROBLEMA RISOLTO!!!
    funziona tutto correttamente!!!

    grazie per la collaborazione
    Robert
    Di nulla :-)

    Se ti serve ancora aiuto non esitare a chiedere.

    A presto
    Condividi la tua conoscenza. E’ un modo per raggiungere l’immortalità. (Dalai Lama)
    Amministratore di www.tuttoexcel.it

  6. #6
    L'avatar di Robert
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    PAVIA
    Messaggi
    11
    Versione Office
    office 2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: lo script si blocca su .connect (err. run time 1004)

    Buona sera a tutti,
    mi collego ad un mio vecchio post in quanto l'argomento è simile.

    in pratica lo scopo è sempre lo stesso:estrarre dati da una pagina WEB. A differenza del precedente script in questo caso non devo sfogliare delle pagine ma devo effettuare query precise (chiedo il cap).

    ho modificato lo script che con il vostro prezioso aiuto funzionava egregiamente ma anche in qs. caso si blocca su .Connection = MyURL
    dando errore runtime 1004.

    non riesco a capire per quale motivo si blocca...

    allego il file xls e lo script

    grazie a tutti per la collaborazione.
    Codice: 
    
    
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems
    
    
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    Dim MyPage As String
    Dim MyURL As String
    Dim EndPath As String
    Dim MyFile As String
    
    
    'On Error Resume Next
    
    
    counter = 0
    
    
    inizio_procedura:
    counter = counter + 1
    If counter > 0 Then
    MyPage = "0000" & counter
    
    
    ElseIf counter > 9 And counter < 100 Then
    MyPage = "000" & counter
    
    
    ElseIf counter > 99 And counter < 1000 Then
    MyPage = "00" & counter
    
    
    End If
    
    
    
    
    MyFile = "c:\FOGLIO" & "1" & ".XLSX"
    
    
    MyURL = "http://www.nonsolocap.it/cap?k=" & MyPage & "&b=+Cerca+&c="
    
    
    '
        With ActiveWorkbook.Connections("Connessione")
            .Name = "Connessione"
            .Description = ""
        End With
        Range("A1:G51").Select
        With Selection.QueryTable
    
    
            .Connection = MyURL
            '.CommandType = 0
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingNone
            .WebTables = """tutte"""
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .BackgroundQuery = False
            .Refresh
             DoEvents
        End With
        Range("A1").Select
        ActiveWorkbook.Connections("Connessione").Refresh
        
    
    
        Range("A1:G51").Select
        Range("A1").Activate
        Selection.Copy
        Workbooks.Add
        ActiveSheet.Paste
        Application.CutCopyMode = False
        ChDir "C:\"
        ActiveWorkbook.SaveAs Filename:= _
            MyFile, FileFormat:= _
            xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWindow.Close
        MyACCESS = Shell("C:\Program Files\Microsoft Office\Office15\msaccess.exe C:\db_cap.accdb", vbNormalFocus)
        
        EndPath = "C:\foglio1.xlsx"
        Sleep 1000
        Kill EndPath
        
    
    
    GoTo inizio_procedura
    
    
    Fine:
    End Sub
    Robert
    File Allegati File Allegati

  7. #7
    L'avatar di Robert
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    PAVIA
    Messaggi
    11
    Versione Office
    office 2016
    Likes ricevuti
    0
    Likes dati
    0

    Re: lo script si blocca su .connect (err. run time 1004)

    buongiorno a tutti,
    qualcuno riesce cortesemente a darmi un mano?

    grazi 1000
    Robert

Discussioni Simili

  1. Togliere filtro - error run-time 1004
    Di rioma nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 07/02/17, 08:42
  2. error run time 1004
    Di Giuseppe63 nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 09/12/16, 17:08
  3. Webquery - Errore script pagina
    Di giteti58 nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 28/10/16, 02:29
  4. Errore run-time 1004
    Di revenge9 nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 05/11/15, 10:52
  5. Test vBulletin 5 Connect
    Di Max nel forum Problemi, suggerimenti e Novità del forum
    Risposte: 9
    Ultimo Messaggio: 09/07/15, 20:30

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •