Anzeige
Archiv - Navigation
1500to1504
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe bei Code

Hilfe bei Code
01.07.2016 13:38:15
Thomas
Hallo liebe Excelgemeinde,
ich hab mich schon viel umgeschaut und gelesen und bin über diesen Code gestolpert und will mich in dem Bereich Excel und ACad (2000) mehr beschäftigen.
Nun kommt die Meldung Objektvariable oder Wiht- Blockvariable nicht festgelegt.
~

Function fktExcel()
Dim oExc As Object, objKreis As AcadCircle
Dim dblZen(2) As Double, dblRadius As Double
Dim i As Long
Dim ThisDrawing As Object
Set oExc = CreateObject("Excel.Application")
oExc.Visible = True
oExc.Workbooks.Open Filename:= _
"C:\Users\Das ist meiner\Documents\ExcelzuCad.xlsm"
For i = 2 To 1000
dblZen(0) = oExc.Range("a" & i).Value
dblZen(1) = oExc.Range("b" & i).Value
dblZen(2) = 0
dblRadius = oExc.Range("c" & i).Value
If dblRadius = 0 Then Exit For
Set objKreis = ThisDrawing.ModelSpace.AddCircle(dblZen, dblRadius)   
~
Ich hoffe es kann mir jemand weiter helfen oder hat eine andere Möglichkeit.
Vielen Dank schon mal und allen ein schönen Tag!
Gruß Thomas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Code
01.07.2016 20:29:12
fcs
Hallo Thomas,
für das Auslesen von Daten aus Zellen musst du ein entsprechendes Worksheet-Objekt setzen.
Generell emfiehlt es sich hier entsprechenden Objektvariablen die Arbeitsmappe und das Tabellenblatt zuzuweisen. So kann man jederzeit im Makro die entsprechenden Methoden und Eigenschaften auf die Objekte anwenden.
Gruß
Franz
Function fktExcel()
Dim oExc As Object, objKreis As AcadCircle
Dim oExcWkb As Object, oExcWks As Object
Dim dblZen(2) As Double, dblRadius As Double
Dim i As Long
Dim ThisDrawing As Object
Set oExc = CreateObject("Excel.Application")
oExc.Visible = True
Set oExcWkb = oExc.Workbooks.Open(Filename:= _
"C:\Users\Das ist meiner\Documents\ExcelzuCad.xlsm")
Set oExcWks = oExcWkb.Worksheets(1) 'oder statt 1 den Blattnamen in Anführungszeichen
For i = 2 To 1000
dblZen(0) = oExcWks.Range("a" & i).Value
dblZen(1) = oExcWks.Range("b" & i).Value
dblZen(2) = 0
dblRadius = oExcWks.Range("c" & i).Value
If dblRadius = 0 Then Exit For
Set objKreis = ThisDrawing.ModelSpace.AddCircle(dblZen, dblRadius)
End Function

Anzeige
AW: Hilfe bei Code
02.07.2016 13:00:23
Thomas
Schönen guten Tag Franz,
ich danke Dir für die schnelle Antwort. Leider bekomme ich noch immer die selbe Meldung an der gleichen Stelle. Warum mein ganzer Code nicht komplett angezeigt wird ist mir auch ein Rätzel. Her noch der Rest des Cods was nicht angezeigt wurde aber an dem kann es wohl nicht Liegen aber zur Sicherheit.
~ Next
'Linien erstellen
Dim dblPkt() As Double ', opjPl As AcadPolyline
Dim lngBereich As Long, j As Integer
Dim objPl As Object
j = 0
'ReDim dblPkt(2)
For i = 2 To 6
lngBereich = (i - 1) * 3 - 1
ReDim Preserve dblPkt(lngBereich)
dblPkt(j) = oExc.Range("e" & i).Value
dblPkt(j + 1) = oExc.Range("f" & i).Value
dblPkt(j + 2) = 0
j = j + 3
Next
Set objPl = ThisDrawing.ModelSpace.AddPolyline(dblPkt)
End Function~
Mit freundlichen Grüßen
Thomas

Anzeige
AW: Hilfe bei Code
02.07.2016 14:21:46
fcs
Hallo Thomas,
du muss überall in deiner Function, wo oExc.Range( oder oExc.Cells( steht das oExc durch die von mir eingefügte neue Variable oExcWks ersetzen.
Weiter kann ich dir hier nicht helfen, da ich das Grafik/CAD-Programm mit dem du arbeitest nicht habe.
Gruß
Franz

AW: Hilfe bei Code
02.07.2016 15:30:03
Thomas
Hallo Franz,
leider habe ich noch immer diese Meldung aber dennoch nochmal Danke.
Das Programm wäre AutoCAD LT 2000i falls noch jemand helfen kann.
Wünsche allen einen schönen Samstag
Gruß Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige