Prendere valore da file Excel tramite vba di AutoCAD

Pombia

Utente poco attivo
Professione: Geometra
Software: Autocad
Regione: Piemonte
#1
Ciao a tutti, leggendo un po di forum su questa tematica non sono riuscita a trovare una soluzione a questa problema.

Avendo questo codice:
Dim Reg As AcadText
Dim textreg As String
Dim IP(0 To 2) As Double
Dim X As Double, Y As Double, Z As Double, rot As Double

textreg = regionetext.Text
X = 2.875
Y = 10.4
Z = 0
IP(0) = X: IP(1) = Y: IP(2) = Z

Set Reg = ThisDrawing.ModelSpace.AddText(textreg, IP, 0.2)
Reg.Layer = 0
Reg.color = acByLayer
Reg.Alignment = acAlignmentCenter
Reg.TextAlignmentPoint = IP
Vorrei che il textreg = venisse prelevato da una cella di un file excel esterno al dgw e non dalla casella di testo che ho inserito nella userform.

Qualcuno mi puo aiutare?
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#2
Dim ExcelSheet As Object
Dim Filename As String

Filename = "c:\TuoFile.xls"
Set ExcelSheet = GetObject(Filename)

ExcelSheet.Application.Visible = True
Cell = ExcelSheet.Application.cells(1, 1)

Cell contiene il valore della cella A1

Buon divertimento
 

Pombia

Utente poco attivo
Professione: Geometra
Software: Autocad
Regione: Piemonte
#3
Ancora problemi, avendo aggiunto il codice non mi fuziona lo stesso.

altre soluzioni?
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#4
Il dvb contiene una funzione che legge una cella di excel descritta da NomeFile, riga e colonna.
Verifica in vba, tools/references deve fare riferimento alla versione di excel in uso.
Cattura.JPG

Se hai problemi, chiedi.
Bye
 

Allegati

Pombia

Utente poco attivo
Professione: Geometra
Software: Autocad
Regione: Piemonte
#5
Ho risolto utilizzando un'altro codice e attivando la references. Grazie dell'aiuto, ho problemi perche sono alle prime armi :)
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#6
A seguito richiesta, posto un esempio di richiamo della funzione vlookup in excel

Sub TestVlookup()

Dim Prova As String
Dim obXLS As Object
Dim wkFile As Workbook
Dim shFile As Worksheet

Set obXLS = GetObject(, "Excel.Application")

obXLS.Application.Visible = True

Set wkFile = obXLS.ActiveWorkbook
Set shFile = wkFile.ActiveSheet
'Set shFile = wkFile.Worksheets(ComboBox1.Text)

Prova = wkFile.Application.WorksheetFunction.vlookup("c", shFile.Range("F1:G8"), 2, False)
'Prova = shFile.Application.WorksheetFunction.vlookup(ListBox2.List(x), shFile.Range(L9, L28), 3, False)

MsgBox Prova

End Sub

p.s.: per Pombia
Le parti in blu contengono le tue impostazioni, fai lo swap.
Bye
 

kAndreak

Utente registrato
Professione: Elettrico
Software: Autocad
Regione: Lombardia
#7
Ciao a tutti,
sono nuovo nel campo e avrei bisogno di realizzare un vbs e vba.
Autocad permette di esportare gli attributi dei blocchi selezionati in formato Excel.
Quello che voglio fare è di creare anche il procedimento inverso; ovvero importare in autocad una tabella esterna in Excel, tale da aggiornarmi i blocchi che io desidero.
E' possibile?
Vi ringrazio
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#8
Negli Express, sezione Blocks, trovi il comando <Import Attribute Information> che serve proprio a questo.
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#10
Il codice lo sta scrivendo Shape. Se invece vuoi utilizzare questo metodo e hai pratica di vba, creati un software in excel che ti permetta l'editing del file txt.
 

kAndreak

Utente registrato
Professione: Elettrico
Software: Autocad
Regione: Lombardia
#11
Il codice lo sta scrivendo Shape. Se invece vuoi utilizzare questo metodo e hai pratica di vba, creati un software in excel che ti permetta l'editing del file txt.
Ho risolto in un modo più semplice.
Ho importato da Excel il file .txt e sucessivamnete reimporto il file .txt modficato in autocad.

Grazie molte
Sei stato utilissimo