FastFiber

layerstructuur exporteren naar excel

Gestart door Sven, do 15 09 2005, 09:44:34

Vorige topic - Volgende topic

Sven

Is het mogelijk om de layerstructuur op een propere manier te exporteren naar excel? Ik heb het geprobeerd met de layerstate en die te exporteren, maar daar is ongelooflijk veel opkuiswerk aan.

Het is uiteindelijk de bedoeling om in excle een lijst te krijgen van de layers met hun kleuren en linetype

Dnereb

Ja dat is mogelijk in VBA door een instantie van excel te openen
(getobject/createobject)
door het layers opject te lopen (for I = 1 to Layers.count)
een variable aan Layer(I) toe te kennen (Set Lay = Layers(I))
en dan de gewesnste gegevens van die layer in de de gewenste cellen van een worksheet te plaatsen.

Seccus

Sven

hmmm, kan je iets duidelijker zijn? Ik heb namelijk nog nooit in VBA gewerkt en heb daar bijgevolg geen kaas van gegeten.  :lol:

Dnereb

Daar was ik al bang voor.... en ik heb niet zo'n behoefte om jouw probleem voor je op te lossen.
misschien dat iemand anders bereid is de code voor je te schrijven maar ik huldig het standpunt helpen is gratis en voor iemand doen is betaald.

Misschien kan je, je eens in VBA verdiepen. ook al lukt dit project (niet meteen) dan kan je er altijd nog wat aan hebben.

WebRacer

Ook ik wil graag helpen,

ik heb er eentje die de layers naar een HTML schrijft...
mss kan je deze voorlopig gebruiken...

download hier Layerlist.vlx
starten van het commando doe je met 'DUMPLAYERS'
?

Kenny H

8) Volvo 4 Life 8)

Sven

bedankt, het is inderdaad een prachtig hulpmiddel  8)

Remo

Tja, heb toch maar even onbetaald gewerkt........  (ach nieuwe functie voor mijn verzameling)

is dit wat?

Sub extractLayerToExcel()
Dim layer As AcadLayer
Dim X As Excel.Application
Dim Rekenblad As Workbook
Dim TabBlad As worksheet
cnt = 0

On Error Resume Next 'hier maak je natuurlijk een nette errorhandler voor :-)

    Set X = GetObject(, "Excel.Application")
    If err Then
        err.Clear
        Set X = CreateObject("Excel.Application")
    End If
    X.Visible = True
   
Set Rekenblad = X.Workbooks.add '("c:\test.xls") 'parameter voor als je een bestaande excelfile wil openen
X.ScreenUpdating = True
Set TabBlad = Rekenblad.Worksheets.item(1)
   
   For Each layer In ThisDrawing.Layers
   
        TabBlad.Cells(cnt, 1) = layer.Name
        TabBlad.Cells(cnt, 2) = layer.Linetype
        TabBlad.Cells(cnt, 3) = layer.color

        cnt = cnt + 1
   
    Next layer
     
End Sub

foutafhandeling en de excel file mooi opleuken doe je zelf maar  :-)

Sven

Bedankt voor jouw reply Remo,

maar helaas ken ik zelfs de basis van VB niet. Ik kan er dus zelf niets mee aanvangen.  :(

Remo

Even heel kort door de bocht......

open AutoCAD  druk op alt F11 
dubbelklik op op ThisDrawing  en kopieer de vorige post  (van  sub   tot  end sub) daarin
klik dan op tools references en voeg daar microsoft excel 9 object library toe..
en klik op run  (afspeel knopje)

zou moeten werken......

p.s. dit werkt dan alleen in deze tekening, wil je meer weten over VBA en autoCAD, koop een boek......



Sven

werkt prachtig, bedankt  :D

misschien is dit niet de juiste plaats, maar welk boek raad je aan om VBA te beginnen? Of staat er genoeg in de boeken van R. Boeklagen?

Remo

Zeker als je net begint staan in de boeken van Ronald genoeg leuke zaken om mee te stoeien, ook is het internet een grote database met code snippers. (beetje creatief googlen met vba AutoCAD etc)  ook de help file in vba zelf heeft goede mogelijkheden en voorbeeldjes....
je zult even moeten wachten voor andere boeken en isbn nummers aangezien die in mijn andere huisje liggen.....

p.s. misschien cursus vba voor AutoCAD volgen bij Ronald Boeklagen,  daar heb ik ook mijn eerste schreden op het vba pad gezet tijdens de opleiding tot AutoCAD system manager. 

FastFiber