[VBA]Automatiseringsfout De verbindingen van het aangeroepen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Vulchare
  • Registratie: December 2013
  • Laatst online: 20:01
Ik ben bezig met het voorbereiden van een jaarlijks project. Dit had ik graag in 1 ruk willen doen, echter krijg ik op willekeurige momenten een foutmelding in zowel Windows 7/Excel 2010 & Windows 8/Excel 2013.

Ik heb enkel het bronbestand en het doelbestand open, vervolgens run ik onderstaande code:


Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Sub ANWBLink()
Dim ws As Worksheet, lastWorkBook As Workbook
Const bronBestandRK = "1RK 2013 origineel KLANT.xls"
Application.DisplayAlerts = False

Set lastWorkBook = ActiveWorkbook
nSchool = lastWorkBook.Worksheets(2).Range("I3").Value
nPostc = lastWorkBook.Worksheets(2).Range("I4").Value
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Index <> 1 Then
            With ws.Range("I23")
                .FormulaR1C1 = _
                    "=IF((LEN(R[-17]C[-5])+LEN(R[-19]C))=14,HYPERLINK(""http://route.anwb.nl/routeplanner/servlet/rp?rtvMode=departure&modality=car&zip1=""&LEFT(R[-17]C[-5],4)&RIGHT(R[-17]C[-5],2)&""&street1=&housenr1=&city1=&zip2=""&LEFT(R[-19]C,4)&RIGHT(R[-19]C,2)&""&street2=&housenr2=&city2=&x=0&y=0"",""Klik hier voor anwb site""),"""")"
                .Font.Color = vbWhite
                .WrapText = True
            End With
            ws.Range("I9").Value = "'1-1-2014"
            ws.Range("B1").Value = "Formulier 2014"
            ws.Range("G15:G17").Value = 0
            ws.Range("c53").Value = "'1-12-2014"
        End If
    Next ws

    Workbooks(bronBestandRK).Sheets(Array("Medw (1)", "Medw (2)", "Medw (3)", "Medw (4)", "Medw (4)", "Medw (5)" _
    , "Medw (6)", "Medw (7)", "Medw (8)", "Medw (9)", "Medw (10)")).Copy After:= _
        Workbooks(lastWorkBook.Name).Sheets(Workbooks(lastWorkBook.Name).Worksheets.Count)

For x = 1 To 10
With lastWorkBook.Worksheets("medw (" & x & ")")
    .Range("I3").FormulaR1C1 = nSchool
    .Range("I4").FormulaR1C1 = nPostc
End With
Next x

End Sub



Vervolgens krijg ik de volgende foutmelding:
code:
1
2
3
Fout -2147417848 (80010108) tijdens uitvoering:
Automatiseringsfout
De verbindingen van het aangeroepen object met de clients zijn verbroken.


Na wat googlen kom ik hierop:
INFO: Error or Unexpected Behavior with Office Automation When You Use Early Binding in Visual Basic

Hier geven ze aan dat de code een bepaalde instantie oproept de beëindigd is, daar lijkt m.i. niets van te kloppen aangezien de code het ene moment wel loopt en het andere moment niet.

Wie kan mij wat verder helpen?

Acties:
  • 0 Henk 'm!

  • Tribits
  • Registratie: Augustus 2011
  • Laatst online: 15:39

Tribits

Onkruid vergaat niet

Als ik zoek op de engelstalige variant van die foutmelding ("The object invoked has disconnected from its clients") in combinatie met de zoektermen VBA en Excel dan kom ik tal van berichten tegen van mensen met hetzelfde probleem maar helaas weinig concrete oplossingen. De betreffende foutcode is inderdaad bedoeld voor situatie waar een COM server afsluit terwijl de client nog referenties naar objecten heeft. Ik meen me te herinneren dat de melding ook op kan treden als een COM aanroep/bewerking te lang duurt.

Onder andere op stack overflow staat er wat informatie over dit onderwerp:Excel VBA Automation Error: The object invoked has disconnected from its clients, wederom weinig concreet maar misschien helpt het je verder. Treed de melding altijd op een bepaalde regel op?

Master of questionable victories and sheer glorious defeats


  • Vulchare
  • Registratie: December 2013
  • Laatst online: 20:01
Tribits schreef op dinsdag 16 september 2014 @ 02:01:
Als ik zoek op de engelstalige variant van die foutmelding ("The object invoked has disconnected from its clients") in combinatie met de zoektermen VBA en Excel dan kom ik tal van berichten tegen van mensen met hetzelfde probleem maar helaas weinig concrete oplossingen. De betreffende foutcode is inderdaad bedoeld voor situatie waar een COM server afsluit terwijl de client nog referenties naar objecten heeft. Ik meen me te herinneren dat de melding ook op kan treden als een COM aanroep/bewerking te lang duurt.

Onder andere op stack overflow staat er wat informatie over dit onderwerp:Excel VBA Automation Error: The object invoked has disconnected from its clients, wederom weinig concreet maar misschien helpt het je verder. Treed de melding altijd op een bepaalde regel op?
Raar genoeg wel.

Bij deze regel
Visual Basic .NET:
1
2
3
Workbooks(bronBestandRK).Sheets(Array("Medw (1)", "Medw (2)", "Medw (3)", "Medw (4)", "Medw (4)", "Medw (5)" _
    , "Medw (6)", "Medw (7)", "Medw (8)", "Medw (9)", "Medw (10)")).Copy After:= _   
Workbooks(lastWorkBook.Name).Sheets(Workbooks(lastWorkBook.Name).Worksheets.Count)


Dit stuk code heb ik voorheen vaak gebruikt met grotere collectie workbooks en zonder problemen :(

Dat was met een array van 4, wellicht ligt daar het probleem?