creio que um link direto assim nao seja a melhor opção, pois te força a abrir o cad caso nao esteja aberto, e isso pode causar erros caso as ações que o excel viesse a disparar no cad fossem tais que não admitissem nenhum erro.
MAS, se você garantir que o excel e o cad estejam abertos na planilha e dwg corretos, então dará certo...
inicialmente pensei no dbconnect do cad, mas se coisas irão ser modificada no cad, complica, temos de programar as ações a mão mesmo
um exemplo de como conectar o cad e criar layers e modificar as suas cores:
Code:
'adicione as referencias:
'autocad 2008 type library (ou a sua versão)
'autocad/objectdbx commom 17.0 type libray (ou a sua versão do cad)
'define as variaveis globais a seguir
Dim Acad As IAcadApplication
Dim Thisdrawing As AcadDocument
'função que "linka" o cad QUE JÁ ESTÁ ABERTO
'se nao estiver aberto, abra-o, ou implemente a função CREATEOBJECT
Function getacaddoc() As Boolean
On Error GoTo erro
'corrija aqui a versão correta do seu autocad
'2009 => 17.2
'2008 => 17.1
'2007 => 17.0
Set Acad = GetObject(, "Autocad.Application.17.1")
'pega o dwg que estiver aberto
Set Thisdrawing = Acad.ActiveDocument
ok:
getacaddoc = True
Exit Function
erro:
getacaddoc = False
End Function
'função que obtem um layer pelo seu nome, criando caso nao exista
Function get_or_create_layer(name As String) As AcadLayer
On Error GoTo cria
Set get_or_create_layer = Thisdrawing.Layers.Item(name)
Exit Function
cria:
Set get_or_create_layer = Thisdrawing.Layers.Add(name)
End Function
'macro que cria layers no cad no dwg que estiver aberto
'defina a coluna "A" da planilha atual com os nomes
'defina a coluna "B" com as cores dos layers
'exemplo:
' A B
'1 teste 1
'2 jj 5
'3 lay2 66
Sub Teste()
If getacaddoc() Then
'MsgBox Thisdrawing.Name
Else
MsgBox "Erro:" & Err.Description
Err.Clear
Exit Sub
End If
Dim layer As AcadLayer
Dim i As Long
For i = 1 To 10
If Me.Cells(i, 1) <> "" Then
Set layer = get_or_create_layer(Me.Cells(i, 1))
layer.Color = Me.Cells(i, 2)
End If
Next
MsgBox "Pronto!!"
End Sub
no mais, voce disse que entende de vba no excel e usa ele, então comece a "brincar" com as variaveis "Thisdrawing" e "Acad" que eu implemento neste pequeno código... verá que é bem simples...
alguns eventos monitorando sua planilha de excel audará naquelo que você deseja fazer, ok?