Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Zugriff von Excel auf Blöcke/ Blockattribute

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: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
Autor Thema:  Zugriff von Excel auf Blöcke/ Blockattribute (2986 mal gelesen)
archstudent
Mitglied



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

Beiträge: 29
Registriert: 06.02.2005

2 x 2,8 Ghz Xeon
2 GB RAM
500 GB HD
23" Flatscreen

erstellt am: 05. Mai. 2005 10:50    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!

Ich möchte von Excel verschiedene Dateien öffnen und dort den Block "Index" (Blockname in allen Zeichnungen identisch) oder dessen Attribute verändern.
In der Excelliste liegen die Dateien als Pfad vor und es gibt eine Spalte für die einzutragenden/ abzuändernden Werte.
Z.B.

Pfad            Index
../plan01.dwg    A
../plan02.dwg    B
../plan03.dwg    C
../plan04.dwg    D

Der aktuelle Stand:


Sub Schaltfläche2_BeiKlick()
Dim ac As AcadApplication
Dim dateiname As Variant
 

 
Set ac = New AcadApplication
ac.Visible = 1

Cells(1, 1).value = dateiname

ac.Documents.Open dateiname 'z.B. Pfad "D:/test/plan1.dwg"

   
    ' Ändern des Blockes

   
    ' Speichern und schließen
 
 
 
End Sub


1. Problem:
Wenn ich den Pfad direkt eingebe, kann er die Datei öffnen. Über die Variable "Dateiname" funktioniert es nicht.

2. Problem:
Wie greife ich auf einen Block bzw. auf dort enthaltene Attribute zu. Ist es vielleich sinnvoller, lieber einen Text hineinzuschreiben?.


Könnt Ihr mir weiterhelfen?

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 05. Mai. 2005 11:54    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 archstudent 10 Unities + Antwort hilfreich

Hi,

zu 1.:
Fast, aber eben nur fast, einmal umdrehen das Ganze;-)
dateiname = Cells(1, 1).value

zu 2.:
Nicht probiert, aber sinngemäss vielleicht in die Richtung:

Code:

dim b as acadblock
for each b in thisdrawing.blocks
    if b.name="Index" then
        'mach was
        exit for
    end if
next


Gruss Nancy 

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

archstudent
Mitglied



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

Beiträge: 29
Registriert: 06.02.2005

2 x 2,8 Ghz Xeon
2 GB RAM
500 GB HD
23" Flatscreen

erstellt am: 08. Mai. 2005 20:17    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 Nancy!

Danke zuerst für Deine Antwort. Das mit dem Pfad scheint allerdings etwas komplizierter zu sein, da es leider auch mit dem "Umdrehen" nicht funktioniert. Das Problem könnte sein, daß die Anweisung den Pfad direkt benötigt und die Variable übergeht!?

Gruß Dominik

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

VBA-Piet
Mitglied
Bauingenieur


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

Beiträge: 15
Registriert: 07.04.2004

AutoCad 2000
Windows XP

erstellt am: 11. Mai. 2005 15:43    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 archstudent 10 Unities + Antwort hilfreich

Zu Frage 2:
noch etwa unelegant, geht aber:


Set sset = thisDrawing.SelectionSets.Add("SS1") 'Auswahlsatz
sset.select acSelectionSetAll 'hier könnten schon vorab nur die Blöcke gefiltert werden

For Each Objekt In sset
  If Objekt.EntityName = "AcDbBlockReference" Then 'Block?
  if Objekt.Name="Index" then  'Blockname
  if Objekt.HasAttributes then                'Attribute?
    attrib = Objekt.GetAttributes
    For Count = LBound(attrib) To UBound(attrib)
      Select Case attrib(Count).TagString 'Name des Attributs
      case "Testattribut1"
        attrib(Count).TextString ="Attributert1" 'Inhalt des Attributs
      case "Testattribut2"
        attrib(Count).TextString ="Attributert2" 
      end select
    next count
  end if
  end if
end if
sset.delete

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