Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

QueryTables e gestione errori

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

QueryTables e gestione errori

Postdi mcgnai » 19/06/07 11:15

Ciao a tutti,
sto scrivendo un programma in vbasic 6 che deve caricare dei dati da internet per elabolarli poi per esempio con excel.
ho utilizzato la QueryTables e funziona benissimo, però non riesco a gestire gli errori, cioè se per esempio la pagina non viene scaricata perchè il sito è irragiungibile oppure la lan non funziona, come faccio a gestire questo evento con un messaggio? precedentemente usavo la funzione URLDownloadToFile e potevo gestire l'errore così:

errcode = URLDownloadToFile(0, strUrl, fileOut, 0, 0)
If errcode = 0 Then
MsgBox ("Download effettuato"
Else
MsgBox("Si è verificato un errore, vuoi continuare ?", vbYesNo)

.......
.......
Invece ora utilizzando le QueryTables ho il seguente listato:

Worksheets(Sheet).Activate

Set QT = ActiveSheet.QueryTables.Add(Connection:="URL;" & strUrl, Destination:=Range("A1"))

With QT
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
.Refresh BackgroundQuery:=False
End With

wkb.Save
wkb.Close
End Sub


come faccio ad intercettare il messaggio di errore ???
mcgnai
Newbie
 
Post: 3
Iscritto il: 19/06/07 10:44

Sponsor
 

Postdi Anthony47 » 19/06/07 13:51

Ciao mcgnai e benvenuto nel forum.

Potresti mettere in cima al tuo codice
Codice: Seleziona tutto
On Error GoTo GestErr


e poi, in fondo prima di End Sub
Codice: Seleziona tutto
Exit Sub
GEstEerr:
    Msg = "Errore " & Str(Err.Number) & " generato da " & Err.Source & Chr(13) & Err.Description
    MsgBox Msg, , "Errore", Err.HelpFile, Err.HelpContext
End Sub


In questo modo, in caso di errore potrai visualizzare un messaggio (anche se non so quanto diagnostico).

Aiuta? ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi mcgnai » 19/06/07 14:38

Grazie Anthony47, provo a fare coì..... :)
mcgnai
Newbie
 
Post: 3
Iscritto il: 19/06/07 10:44

Postdi mcgnai » 19/06/07 16:06

Anthony47 ho provato a fare come dicevi tu, ma anche se riesco a memorizzare il codice errore, non riesco a intercettarlo prima dell'evento....mi spiego meglio: ho simulato l'errore staccando la rete del pc, ho messo "On Error GoTo GestErr" all'inizio del codice ma il sistema mi apre una finestra "microsoft excele" che visualizza il messaggio: impossibile aprire http://...........
come faccio a memorizzarmi il codice errore senza far aprire la finestra che mi blocca il programma?? ho pure provato a inserire all'inizio "on Error Resume Next" ma senza successo ...... mi aiuti ???
mcgnai
Newbie
 
Post: 3
Iscritto il: 19/06/07 10:44


Torna a Applicazioni Office Windows


Topic correlati a "QueryTables e gestione errori":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti