Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  In Excel vorhandene Blöcke auflisten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
Autor Thema:  In Excel vorhandene Blöcke auflisten (2129 mal gelesen)
Bernhard F.
Mitglied



Sehen Sie sich das Profil von Bernhard F. an!   Senden Sie eine Private Message an Bernhard F.  Schreiben Sie einen Gästebucheintrag für Bernhard F.

Beiträge: 24
Registriert: 17.03.2008

WIN 10
BricsCAD 20
Autocad 2019

erstellt am: 27. Apr. 2009 10:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

wie kann man in Excel per VBA abfragen, welche Blöcke in der aktiven Zeichnung vorhanden sind?

Danke im voraus.

------------------
Gruß, Bernhard F.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Moderator
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 27. Apr. 2009 10:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernhard F. 10 Unities + Antwort hilfreich

Hallo Bernhard,

was willst du denn machen ?

Willst du wissen welche Blockdefinitionen in der Datei sind ?
oder welche Blöcke wieoft eingefügt wurden ?

Mit welcher AutoCAD Version arbeitest du ?
Fülle doch noch bitte die Systeminfo aus.

In Thisdrawing.Blocks hast du eine Auflistung der Blockdefinitionen.
Wenn du die Referenzen haben willst kannst du z.B. die Auflistung des Modelbereiches durchlaufen und die Inserts finden, oder mit Hilfe eines Selectionsets mit einem Filter die Blockreferenzen finden.

Was hast du denn bereits für einen Code.

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernhard F.
Mitglied



Sehen Sie sich das Profil von Bernhard F. an!   Senden Sie eine Private Message an Bernhard F.  Schreiben Sie einen Gästebucheintrag für Bernhard F.

Beiträge: 24
Registriert: 17.03.2008

WIN 10
BricsCAD 20
Autocad 2019

erstellt am: 27. Apr. 2009 11:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Wilfried,
ich will nur wissen welche Blöcke sich in der Zeichnung befinden. (Auflistung der Blocknamen).

Code:
  Dim acad As AcadApplication
  Dim fType(0 To 1) As Integer, fData(0 To 1)
  Dim adBlockSS As AcadSelectionSet
  Dim adBlock As AcadBlockReference
  Dim adBlockAttributes As Variant
  Dim adBlockList As String
  Dim i As Integer

  Set adBlockSS = acad.ActiveDocument.SelectionSets("adBlockSS")
hier ist der Fehler

  If Err Then Set adBlockSS = acad.ActiveDocument.SelectionSets.Add("adBlockSS")
  adBlockSS.Clear
  fType(0) = 0: fData(0) = "INSERT": fType(1) = 2: fData(1) = "*"
  adBlockSS.Select acSelectionSetAll, , , fType, fData
  adBlockList = ""
  For Each adBlock In adBlockSS
    adBlockAttributes = adBlock.GetAttributes
    adBlockList = adBlockList & adBlock.Name & " : "
    For i = LBound(adBlockAttributes) To UBound(adBlockAttributes)
      adBlockList = adBlockList & adBlockAttributes(i).TextString & ", "
    Next i
    adBlockList = adBlockList & vbCrLf
  Next adBlock
  MsgBox adBlockList
  adBlockSS.Clear



------------------
Gruß, Bernhard F.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Moderator
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 27. Apr. 2009 12:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernhard F. 10 Unities + Antwort hilfreich

Hallo Bernhard,

du kannst leider nicht abfragen ob ein Selectionset existiert.
Mit einer Fehlerbehandlung kannst du das aber lösen.

Code:
'---Selectionset anlegen
On Error Resume Next
Err.Clear
Set SelSet = ThisDrawing.SelectionSets.Add("WMF_EXPORT")
If Err.Number <> 0 Then
'---Falls vorhanden
  On Error GoTo 0
  Set SelSet = ThisDrawing.SelectionSets("WMF_EXPORT")
End If
On Error GoTo 0


Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

dechgo
Mitglied
Dipl. Ing. (FH)


Sehen Sie sich das Profil von dechgo an!   Senden Sie eine Private Message an dechgo  Schreiben Sie einen Gästebucheintrag für dechgo

Beiträge: 93
Registriert: 13.04.2005

erstellt am: 27. Apr. 2009 12:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernhard F. 10 Unities + Antwort hilfreich

also wenn es dir nur um die Namen in der aktuellen Zeichnung geht kannst du folgendes machen:

Sub test()


  Dim objacad As AutoCAD.AcadDocument
  Dim adBlock As AcadBlock
  Dim adBlockList As String

 
  Set objacad = AutoCAD.ActiveDocument


  For Each adBlock In objacad.Blocks

    adBlockList = adBlockList + vbCrLf + adBlock.Name

  Next adBlock
  MsgBox adBlockList


End Sub

Ausgabe ist hier wie bei deinem Bsp in der MsgBox.
Der Code ist so geschrieben, dass er unter Excel gestartet wird....
Nur der Verweiss auf AutoCAD Objekte muss gesetzt werden...
Gruss Dennis

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Anzeige:Infos zum Werbeplatz >>

Spatial Manager? for AutoCAD CAD APP für GIS, Vermessung und Kartografie, Tiefbau, Datenaustausch

Spatial Manager? für AutoCAD ist ein leistungsstarkes AutoCAD-Plug-In für AutoCAD-Benutzer, die räumliche Geodaten auf einfache, schnelle und kostengünstige Weise importieren, exportieren, umwandeln und verwalten müssen. Dazu gehören viele Funktionen, die in AutoCAD bisher nicht verfügbar waren

Bernhard F.
Mitglied



Sehen Sie sich das Profil von Bernhard F. an!   Senden Sie eine Private Message an Bernhard F.  Schreiben Sie einen Gästebucheintrag für Bernhard F.

Beiträge: 24
Registriert: 17.03.2008

WIN 10
BricsCAD 20
Autocad 2019

erstellt am: 27. Apr. 2009 13:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Dennis,

das wars. Das hab ich gesucht.

Danke.

------------------
Gruß, Bernhard F.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz