error - 462 Remote server is unavailable

Status
Niet open voor verdere reacties.

kiredw

Gebruiker
Lid geworden
31 mei 2012
Berichten
12
Hallo,

Voor autocad heb ik een plugin gemaakt in VBA. Het heeft goed gewerkt. Na allerlei wijzigen werkt het nu niet meer. Dit probleem heb ik eerder gehad en tot nu toe constant kunnen oplossen. Ditmaal al meerdere dagen een het spelen met objecten, maar ik krijg het niet werkend.

Eerste keer gaat goed, tweede keer gaat het fout. Ik heb al veel dingen geprobeerd. Objecten leeg maken(oBook = nothing), weggooien, etc. Tot nu toe heeft nog niks het probleem op gelost. Ziet iemand hieronder een fout omtrent de melding remote server is unavailable?(De code zaten meer objecten, onder andere om voor sheets en ranges, ik heb omgezet voor gebruik van 1 object met de hoop dat het probleem makkelijker te vinden is)

CODE KLOPT NIET. AANTAL DINGEN VERWIJDERD OM HET WAT TE VERKLEINEN. AANTAL DIM VERWIJDERD EN AANTAL REGELS WAAR DE WAARDES WORDEN GEVULD

Public object aangemaakt in de module, main wordt gestart, vervolgens word het object excel gebruikt in createlist.


Code:
Option Explicit
Dim Count, Index, tempString, attrib, TagName
Dim arraytekening()
Dim BlockAttributes


Public oBook As excel.Application


Sub main()
Dim aantallengteeenheid() As String
ReDim aantallengteeenheid(0)

ReDim lengteeenheid(0)

Dim a As Integer
Dim myArray() As Long

Dim sKillExcel
sKillExcel = "TASKKILL /F /IM Excel.exe"

Set oBook = New excel.Application
oBook.Workbooks.Open ("c:\triexport\tmp.xlsm")

projectnr = ""
subnr = ""

Count = ThisDrawing.ActiveLayout.Block.Count
 
a = 0

For Index = 0 To Count - 1
    tempString = ThisDrawing.ActiveLayout.Block(Index).ObjectName
    If tempString = "AcDbBlockReference" Then
        blockname = ThisDrawing.ActiveLayout.Block(Index).Name
        If blockname = "roh2" Or blockname = "roh4" Or blockname = "MAGGDAMM2" Or blockname = "MAGGDAMM1" Or blockname = "ROHDAMM-5-2" Then
        a = a + 1
        End If
    End If
Next Index
a = a + 1

ReDim arraytekening(0 To a, 0 To 18)
a = 0
For Index = 0 To Count - 1
    tempString = ThisDrawing.ActiveLayout.Block(Index).ObjectName
    If tempString = "AcDbBlockReference" Then
    blockname = ThisDrawing.ActiveLayout.Block(Index).Name
        If blockname = "roh4" Or blockname = "MAGGDAMM2" Or blockname = "MAGGDAMM1" Then
        BlockAttributes = ThisDrawing.ActiveLayout.Block(Index).GetAttributes
        For Each attrib In BlockAttributes
            If omschrijving = "" Then omschrijving = fomschrijving(attrib.TagString, attrib.TextString)
            If typekleur = "" Then typekleur = ftypekleur(attrib.TagString, attrib.TextString)
            If artikelnummer = "" Then artikelnummer = fartikelnummer(attrib.TagString, attrib.TextString)
            If UBound(aantallengteeenheid, 1) = 0 Then aantallengteeenheid = faantallengteeenheid(attrib.TagString, attrib.TextString)
            
            If omschrijving <> "" And typekleur <> "" And artikelnummer <> "" And UBound(aantallengteeenheid, 1) <> 0 Then
                arraytekening(a, 5) = omschrijving

                a = a + 1
                omschrijving = ""
                typekleur = ""
                artikelnummer = ""
                ReDim aantallengteeenheid(0)
            End If
        Next attrib
        End If
        
        If blockname = "roh2" Or blockname = "ROHDAMM-5-2" Then
        BlockAttributes = ThisDrawing.ActiveLayout.Block(Index).GetAttributes
        For Each attrib In BlockAttributes
            If omschrijving = "" Then omschrijving = fomschrijving(attrib.TagString, attrib.TextString)
            If UBound(aantallengteeenheid, 1) = "0" Then aantallengteeenheid = faantallengteeenheid(attrib.TagString, attrib.TextString)
            If typekleur = "" Then typekleur = ftypekleur(attrib.TagString, attrib.TextString)
            If artikelnummer = "" Then artikelnummer = fartikelnummer(attrib.TagString, attrib.TextString)
            If UBound(lengteeenheid, 1) = 0 Then lengteeenheid = flengteeenheid(attrib.TagString, attrib.TextString, aantallengteeenheid(0))
            
            If omschrijving <> "" And typekleur <> "" And artikelnummer <> "" And UBound(aantallengteeenheid, 1) <> 0 And UBound(lengteeenheid, 1) <> 0 Then
                arraytekening(a, 5) = omschrijving

                a = a + 1
                omschrijving = ""
                ReDim aantallengteeenheid(0)
                typekleur = ""
                artikelnummer = ""
                ReDim lengteeenheid(0)
            End If
        Next attrib
        End If
        
        If blockname = "roh" Or blockname = "roh aangepast" Or blockname = "ROHDAMM-5" Then
        BlockAttributes = ThisDrawing.ActiveLayout.Block(Index).GetAttributes
        For Each attrib In BlockAttributes
            If projectnr = "" Then projectnr = fprojectnummer(attrib.TagString, attrib.TextString)
            If subnr = "" Then subnr = fsubnummer(attrib.TagString, attrib.TextString)
         Next attrib
        End If
        End If
Next Index


If Left(projectnr, 1) = "P" And Len(projectnr) = "7" Then
    If Len(subnr) = "2" Then
        lastrow = (UBound(arraytekening, 1) - 1)
        arraytekening(lastrow, 6) = "1"

        
        readExcel
        
        If errortxt <> "" Then
        GoTo errorHandler
        End If
            
    Else
        errortxt = "Subnummer is niet juist ingevuld"
        GoTo errorHandler
    End If
Else
    errortxt = "Projectnummer is niet juist ingevuld"
    GoTo errorHandler
End If


For I = 0 To (UBound(arraytekening, 1) - 1)
    If arraytekening(I, 9) = "" Or arraytekening(I, 9) = "-" Or Left(arraytekening(I, 9), 3) = "D07" Then
            toegevoegd = toegevoegd & vbCrLf & "Omschr:" & arraytekening(I, 5) & ", Type/kleur:" & arraytekening(I, 18) & "   <-------Niet toegevoegd"
    End If
Next



MsgBox toegevoegd & vbCrLf & vbCrLf & "EXPORT WORD NU UITGEVOERD. TRIMERGO HEEFT EEN AANTAL SECONDEN NODIG OM DIT TE VERWERKEN."

oBook.Workbooks("tmp.xlsm").Saved = True
oBook.Workbooks("tmp.xlsm").Close False
Shell sKillExcel, vbHide

Exit Sub
errorHandler:
MsgBox ("ERROR: " & errortxt & vbCrLf & vbCrLf & "--Export is niet uitgevoerd--")
errortxt = ""
End Sub
Sub readExcel()
Dim projectnummer As String

Dim nRow As Integer
Dim nCol As Integer
Dim rijnummer As String
Dim eenheid As String
Dim x As String
Dim rng As range

Dim sKillExcel
sKillExcel = "TASKKILL /F /IM Excel.exe"

Err.Clear
If (Err.Number <> 0) Then
    MsgBox Err.Number
    Exit Sub
End If

For I = 0 To (UBound(arraytekening, 1) - 1)
    'Sheets("Settings").Activate
    arraytekening(I, 0) = "tttt"
    arraytekening(I, 1) = "N"
    arraytekening(I, 2) = arraytekening(I, 1)
    'Sheets("TriArticles").Activate
    arraytekening(I, 3) = projectnr
    arraytekening(I, 4) = subnr
    arraytekening(I, 12) = "N" 'purchase
    
    If arraytekening(I, 9) <> "" And arraytekening(I, 9) <> "-" And arraytekening(I, 9) <> "Vrij" Then
       ' On Error GoTo errorLn
        rijnummer = WorksheetFunction.Match(arraytekening(I, 9), oBook.Worksheets("TriArticles").range("A:A"), 0)
                
        'On Error GoTo errorLn2
            arraytekening(I, 5) = WorksheetFunction.VLookup(arraytekening(I, 9), oBook.Worksheets("TriArticles").range("A1:M4000"), 2, False)
            arraytekening(I, 13) = WorksheetFunction.VLookup(arraytekening(I, 9), oBook.Worksheets("TriArticles").range("A1:M4000"), 5, False)
            arraytekening(I, 14) = WorksheetFunction.VLookup(arraytekening(I, 9), oBook.Worksheets("TriArticles").range("A1:M4000"), 11, False)
            arraytekening(I, 15) = WorksheetFunction.VLookup(arraytekening(I, 9), oBook.Worksheets("TriArticles").range("A1:M4000"), 13, False)
            arraytekening(I, 8) = "Materiaal"
            arraytekening(I, 11) = "N" 'generate
            arraytekening(I, 12) = "Y" 'purchase
        
        x = ""
        If arraytekening(I, 7) = "M1" Then
            On Error Resume Next
            x = WorksheetFunction.Match(arraytekening(I, 7), oBook.Sheets("TriArticles").range("N" & rijnummer & ":W" & rijnummer), 0)

            If x = "" Then
            On Error GoTo errorLn2:
            x = WorksheetFunction.Match("Per Mtr.", oBook.Sheets("TriArticles").range("N" & rijnummer & ":W" & rijnummer), 0)
            arraytekening(I, 7) = "Per Mtr."
            arraytekening(I, 6) = (arraytekening(I, 16) / 1000) * arraytekening(I, 6)
            arraytekening(I, 16) = 0

            End If
        ElseIf arraytekening(I, 7) = "Per Stuk" Then
            On Error Resume Next
            x = WorksheetFunction.Match(arraytekening(I, 7), oBook.Sheets("TriArticles").range("N" & rijnummer & ":W" & rijnummer), 0)
            If x = "" Then
            On Error GoTo errorLn2:
            x = WorksheetFunction.Match("Per set", oBook.Sheets("TriArticles").range("N" & rijnummer & ":W" & rijnummer), 0)
            arraytekening(I, 7) = "Per set"
            End If
        Else
            On Error GoTo errorLn2:
            eenheid = WorksheetFunction.Match(arraytekening(I, 7), oBook.Sheets("TriArticles").range("N" & rijnummer & ":W" & rijnummer), 0)
        End If
    ElseIf arraytekening(I, 9) = "Vrij" Then
        arraytekening(I, 8) = "Vrij"
        arraytekening(I, 11) = "Y" 'generate
        arraytekening(I, 12) = "N" 'purchase
    End If
check:
Next
createQuotationMaterialsAndHoursXml

Exit Sub


errorLn:
errortxt = (arraytekening(I, 9) & " STAAT NIET IN DE PRIJSLIJST, INDIEN ARTIKEL WEL IN PRIJSLIJST STAAT, SCHREEUW NAAR DE SYSTEEMBEHEERDER VOOR HULP")
Exit Sub

errorLn2:
UserForm2.changeunitform oBook.Sheets("TriArticles").range("N" & rijnummer & ":W" & rijnummer), arraytekening(I, 9), arraytekening(I, 5), arraytekening(I, 6), arraytekening(I, 16), arraytekening(I, 17), arraytekening(I, 7)
arraytekening(I, 7) = UserForm2.newunit
arraytekening(I, 6) = UserForm2.newcount
arraytekening(I, 16) = UserForm2.newlength
arraytekening(I, 17) = UserForm2.newwidth
Unload UserForm2
Resume check:
Exit Sub

End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan