Macro geeft error

Status
Niet open voor verdere reacties.

excelkees

Gebruiker
Lid geworden
7 sep 2010
Berichten
155
Hallo beste mensen,
ik heb soms een probleem met een macro waar ik data ophaal van een website.

Selection.QueryTable.Refresh BackgroundQuery:=False

Ik krijg dan de melding: Run-time error '1004'. application-defined or object-defined error.
Heeft er iemand een stukje code waarin de melding wordt gemaakt dat .... niet lukt met het verzoek om door te gaan of te stoppen.
alvast bedankt
Kees
 
Laatst bewerkt:
Dat kun je opvangen met on error
Voorbeeld:
Code:
Sub Voorbeeld()
On Error Goto Foutafhandeling

        Jouw code

On Error Goto 0
Exit Sub
Foutafhandeling:
Msxbox "Er is een fout opgetreden"
End sub

mvg Leo
 
Alleen de niet werkende overslaan

Dank je Leo, dit werkt al prima!!!
Is het ook mogelijk dat als er eentje niet werkt dat de anderen wel worden ververst?

Code:
Sheets("Pluk").Select
Range("A1").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A121").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Range("A221").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
enz...

nogmaals dank,
groetjes Kees
 
Laatst bewerkt door een moderator:
excelkees,

Ik denk dat de code ook zo zal werken, op de foutmelding na dan natuurlijk.
Code:
Range("A1").QueryTable.Refresh BackgroundQuery:=False
Range("A121").QueryTable.Refresh BackgroundQuery:=False
Range("A221").QueryTable.Refresh BackgroundQuery:=False
 
Dank je Leo, dit werkt al prima!!!
Is het ook mogelijk dat als er eentje niet werkt dat de anderen wel worden ververst?

nogmaals dank,
groetjes Kees

Eventueel kun je
Code:
On Error Resume Next
gebruiken.
Je krijgt dan echter geen melding dat er iets wordt overgeslagen.

Mvg Leo
 
Eventueel kun je
Code:
On Error Resume Next
gebruiken.
Je krijgt dan echter geen melding dat er iets wordt overgeslagen.
Mvg Leo

Dat klopt., Maar....

Code:
Sub test()
Dim a As Long
On Error Resume Next
a = 1 / 0
MsgBox "Fout : " & Err.Number & " - " & Err.Description
On error goto 0
End Sub

de fout blijft bestaan maar melding wordt genegeerd.
dit kan wel tot problemen leiden als je niet je error code reset, en dan kan je zomaar op de verkeerde plaats naar fouten lopen zoeken.

Code:
Sub test2()
Dim a As Long
On Error Resume Next
a = 1 / 0
if err.number = 11 then msgbox "fout. delen door nul!"
On error goto 0  'zet err.number op 0 
'Err.clear       'kan ook
End Sub
 
Iets delen?

Hoi Mark (alweer),
code blijft nu lekker doorlopen, ook de message box verschijnt
"Fout: 11 - Division by Zero"
graag nog een beetje uitleg
groetjes Kees

ook leofact alvast bedankt
 
Kees, ik weet niet precies wat je bedoelt,
maar hier nog een voorbeeld van foutafhandeling

loop maar eens stapsgewijs door deze macro (met F8)

Code:
Sub Mogguh()
Dim i As Long
On Error GoTo Einde:

    For i = 0 To 3
        
        MsgBox "3 delen door " & i & " = " & (3 / i)
    
    Next

On Error GoTo 0
Einde:
Select Case Err.Number
    Case 0      'geen error
    
    Case 11     'division by zero
        
        MsgBox "3 delen door 0 geeft een error"
        
        Resume Next     'De sub gaat door vanaf de regel na het punt _
                        dat de error is opgeroepen
End Select
End Sub
 
url

Hoi Mark,
is het ook mogelijk dat de code doorloopt en de url die niet werkt laat zien?
gr Kees
 
Natuurlijk kan dat Kees.

Probeer eens wat met het volgende voorbeeld:

Code:
Sub Refreshkees()
Const APP As String = "Excelkees macro"
Dim qt As QueryTable
On Error GoTo Foutafhandeling:
With Sheets("Pluk")
    For Each qt In .QueryTables
        qt.Refresh BackgroundQuery:=False
    Next
End With
On Error GoTo 0
Foutafhandeling:
Select Case Err.Number
    Case 0  'geen error
    
    Case 1004
        MsgBox "Het verversen van de querytable met URL " & Mid(qt.Connection, 5) & " is mislukt", _
                vbExclamation, APP
        Resume Next    'Probeer volgende URL
    Case Else
        MsgBox "Onbekende fout: " & Err.Number & " - " & Err.Description & vbCr & _
                        "Je kunt voor deze fout foutafhandeling toevoegen " & _
                        "door case (error nummer) toe te voegen aan de sub."
End Select
End Sub
 
Laatst bewerkt:
Mark xl

Mark, je zult de zolder wel vol hebben liggen met bedankjes! hopelijk kan de mijne er nog bij.
code werkt prima en ben er goed mee geholpen en weer iets geleerd

groetjes Kees
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan