Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Excel-Werte in CAD-Zeichnung übernehmen

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Excel-Werte in CAD-Zeichnung übernehmen (3204 mal gelesen)
CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 04. Nov. 2008 13:22    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 habe folgendes Problem:
ich möchte gerne Werte aus einer Excel Tabelle in eine CAD-Zeichnung übernehmen (also nur den Text in die jeweilige Zeichnung). Leider kenne ich mich mit den VBA-Befehlen in AutoCad überhaupt nicht aus. Kann  mir geholfen werden?

Danke im vorraus

Gruß

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


Ex-Mitglied

erstellt am: 04. Nov. 2008 13:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Willkommen in CAD-de

Zur Problemstellung: ich würde Kopieren&Einfügen machen, das braucht kein VBA. Zumindest solange nicht, solange nicht die Aufgabenstellung detaillierter ist (und auch die AutoCAD-Version angegeben ist).

- alfred -

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 04. Nov. 2008 14:45    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,
danke für die schnelle Antwort. Sorry wegen meiner dürftigen Infos

Also:
Ich lese bestimmte Dateinamen aus einem Verzeichnis in Excel aus. Diese müssen automatisch bzw. per Button in eine Zeichnungsvorlage(dwg) übertragen werden. Die Zeichnungsvorlage wird dann unter einem neuen Namen bzw. als Kopie in einem variablen Verzeichnis  abgespeichert. Die Zeichnung beinhaltet also nur die kopierten Exceldaten (ein bisschen komisch, ich weiß)
Ach so ich arbeite hier mit Mechanical Desktop 6 Power Pack.

Gruß

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


Ex-Mitglied

erstellt am: 04. Nov. 2008 14:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

korrigiere mich, wenn ich falsch liege (komm nicht aus der Maschinenbauer-Seite), ist das nicht schon etwas alt? Wenn ich damit richtig liege, dass das auch AutoCAD 2002 beruht, dann habe ich das Problem, dass ich Dir nichts vorschreiben kann, da bei mir 2002 nicht mehr installiert ist.

D.h. wir müssen Code direkt hier tippen, dvb übertragen geht (von mir zur Dir) nicht.

Welchen Teil von Code hast Du schon und wo hängst Du?

- alfred -

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 04. Nov. 2008 15:06    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,

Sub Datenübertrag()
Dim XlAPP As Object
Set XlAPP = GetObject(, "Autocad.Application")
Range("B3:H8").Select
Selection.Copy
Shell "C:\acad.exe /o M:\Zeichnungsvorlage.dwg"

...und dann verließen sie ihn...

dieses Modul habe ich in einer Excel-Tabelle begonnen.

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


Ex-Mitglied

erstellt am: 04. Nov. 2008 15:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

wenn Du mit XlApp das Excel-Application-Objekt meinst, dann bitte nicht mit GetObject(,"AutoCAD.Application") starten oder
wenn du mit XlApp das AutoCAD-Application-Objekt meinst, dann bitte nicht nochmals per 'Shell' starten.

Kannst Du mal daneben kommentieren, was Du womit bezweckst (eben um obiges klarer zu machen)
Weiters wäre interessant, ob Du das VBA im Excel abarbeitest oder im AutoCAD (kann ich unten auch nicht erkennen)

- alfred -

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 04. Nov. 2008 21: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

Hi,

Sub Datenübertrag()
Dim XlAPP As Object
Set XlAPP = GetObject(, "Autocad.Application")
Range("B3:H8").Select                            -> Werte aus Excel
                                                    Tabelle

Selection.Copy                                    -> kopieren
Shell "C:\acad.exe /o M:\Zeichnungsvorlage.dwg"  -> Zeichnungsvor-
                                                    lage öffnen

Das Programm war nur als Probe gedacht, um festzustellen, wie ich überhaupt von Excel aus eine .dwg öffne. Die Definition von xlAPP hatte bis dahin keinen tieferen Sinn. Auch nicht die Auswahl/Kopie der Zellen. Wie gesagt die VBA-Programmierung von Mechanical Desktop ist für mich Neuland.

Die Aufgabe an das Programm ist demnach folgende:

1. Öffne die Zeichnungsvorlage (evtl. Ansicht anpassen/zentrieren)
2. Füge die kopierten Excel-Zellen in die Zeichnung ein (evtl. Größe
  anpassen/zentrieren)
3. Zeichnung im Stempel/Rahmen benennen und zwar aus einer der Excel-
  Zellen
4. Zeichnung unter einem neuem Namen in einem beliebigen Vezeichnis
  speichern.

Das alles möchte ich von der Excel-Datei aus steuern, da ich hier eben diese Daten, die ich in die Zeichnungsvorlage speichern möchte, ermittle.

Gruß


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


Ex-Mitglied

erstellt am: 04. Nov. 2008 22:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

'Set XlAPP = GetObject(, "Autocad.Application")'
==>mit diesem versuchst Du, den Task von AutoCAD zu finden und Dich mit dem ActiveX-Server von AutoCAD zu verbinden, läuft AutoCAD nicht ==> tschuess


'Shell "C:\acad.exe /o M:\Zeichnungsvorlage.dwg"'
==>hier wird zwar AutoCAD gestartet, und zwar ganz egal, ob's schon gestartet ist oder nicht.
==>BTWBy the way (So nebenbei bemerkt) ich hoffe nicht, dass Dein AutoCAD auf 'C:\' installiert ist


mal aus dem Kopf heraus den AutoCAD-Teil:
--------------------------------------
Dim tAcadApp as AcadApplication     'setzt voraus, dass unter Verweisen AutoCAD eingetragen ist

On Error Resume Next
set tAcadApp = getObject(,"AutoCAD.Application")   'sieht mal nach, ob AutoCAD schon gestaret
if (tAcadApp is nothing) then
   'ok, scheint noch nicht gestartet (oder zumindest nicht zugreifbar)
   set tAcadApp = createObject("AutoCAD.Application")
end if

if (tAcadApp is nothing) then
   'dann ist was schief gegangen
   call MsgBox("AutoCAD kann nicht gestartet werden, Abbruch")
else
   dim tAcadDoc as AcadDocument
   set tAcadDoc = tAcadApp.Documents.Open("M:\Zeichnungsvorlage.dwg")  'vorlagenzeichnung oeffnen
   if tAcadDoc is nothing then
      call MsgBox("AutoCAD kann Zeichnung nicht öffnen, Abbruch")
   else
      '.......<und damit hast du autocad mit der richtigen Zeichnung zur Bearbeitung>
      '.......<hier Dein Code, was in dieser Zeichnung passieren soll>
      Err.Clear
      tAcadDoc.SaveAs("NeuerDateiName.dwg")   'deinen gewünschten Namen einsetzen
      if Err.Number <> 0 then
         call MsgBox("Fehler beim Speichern der Zeichnung aufgetreten, Abbruch")
      else
         tAcadDoc.Close
      end if
   end if
end if


hoffe es hilft

- alfred -

PS: das ist nicht gelaufen, nicht getestet, nicht geprüft also bitte VORHER SPEICHERN DEINER ARBEIT

[Diese Nachricht wurde von a.n. am 04. Nov. 2008 editiert.]

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 05. Nov. 2008 07:46    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

Hi,

Erstmal Vielen Danke für das Programm.
Das Problem es läuft einfach "so durch". Es öffnet mir nicht einmal die Zeichnung...

Gruß

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


Ex-Mitglied

erstellt am: 05. Nov. 2008 08:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

es sollte nicht das Programm fertig ablaufen (schon wegen Pfad-angaben etc.), es sollte Dir als Vorlage dienen, wie Du zum AutoCAD kommst (es geordnet startest) um die Zeichnung mal 'in der Hand' zu haben.

Zitat:
Das Problem es läuft einfach "so durch". Es öffnet mir nicht einmal die Zeichnung...

dann nimm das 'On Error Resume Next' mal raus und schau, wo er haengt und korrigiere, wenn Du kannst oder lass es mich wissen. Wie ich schon geschrieben habe, das ist blind runtergeschrieben, da koennen schon Tipfehler oder ähnliches enthalten sein.

- alfred -

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 05. Nov. 2008 16: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

Hi,
ich habe 'On Error Resume Next' auskommentiert aber leider geht immer noch nichts.
Das Programm läuft aber von A bis Z ohne Beanstandungen durch. Habe auch schon einige Verweise unter Extras versucht, nur eben ohne Erfolg.

Gruß

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

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 05. Nov. 2008 16:57    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

...bevor ich es vergesse.
Leider liegt hier Autocad unter Laufwerk C:
Wie dem auch sei könnte es an den Verweisen liegen? Welche Bibliothek wäre hier u.U. die richtige?

Gruß

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


Ex-Mitglied

erstellt am: 05. Nov. 2008 23:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

das Programm tut auch 'NICHTS' effektives, wenn Du nicht in meinen Code eingreifst und zumindest in den Teil etwas hineinschreibst, der von mir entsprechend markiert ist.

Oder hast Du schon Änderungen durchgeführt und die werden nicht exekutiert? (dann bräuchte ich Code)

Oder bricht VBA irgenwo ab? ==> kannst mal mit Einzelschritten durch das Programm durchgehen und die jeweiligen Erfolge/Misserfolge jeder einzelnen Zeile ansehen.

Setze bitte in die ersten Zeilen 'Option Strict On' und 'Option Explicit On'.

- alfred -

[Diese Nachricht wurde von a.n. am 05. Nov. 2008 editiert.]

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 06. Nov. 2008 15:03    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

Hi,

also ich komme so langsam meinem Ziel näher.
Zwei Probleme (noch):

1. tAcadApp = GetObject(, "AutoCAD.Application")
  Set tAcadDoc = tAcadApp.Documents.Open  ("M:\...")
  ==> kommen sich in die Quere. Soll heißen, das Programm öffnet die
      Zeichnung erst, wenn AutoCad schon gestartet ist. Vielleicht
      müsste ich hier auf meine gute alte 'Shell'-Methode zugreifen

2. Mein eigentliches Problem war ja das Einfügen von Zellen in die
  Zeichnung. Wie sieht hier der Code aus?
  [Ein Makrorecorder für AutoCad wäre hier eine Spitzensache. Nur
    leider nutze ich diese Programm an meinem Arbeitsplatz
    (Installationen also unmöglich...)]
  Ich kopiere die Zellen mit Selection.Copy aus meiner Tabelle...,
  und dann?

Danke im vorraus (auch für Deine bisherigen Bemühungen)

Gruß

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

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 06. Nov. 2008 15:05    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

Hi,

also ich komme so langsam meinem Ziel näher.
Zwei Probleme (noch):

1. tAcadApp = GetObject(, "AutoCAD.Application")
  Set tAcadDoc = tAcadApp.Documents.Open  ("M:\...")
  ==> kommen sich in die Quere. Soll heißen, das Programm öffnet die
      Zeichnung erst, wenn AutoCad schon gestartet ist. Vielleicht
      müsste ich hier auf meine gute alte 'Shell'-Methode zugreifen

2. Mein eigentliches Problem war ja das Einfügen von Zellen in die
  Zeichnung. Wie sieht hier der Code aus?
  [Ein Makrorecorder für AutoCad wäre hier eine Spitzensache. Nur
    leider nutze ich diese Programm an meinem Arbeitsplatz
    (Installationen also unmöglich...)]
  Ich kopiere die Zellen mit Selection.Copy aus meiner Tabelle...,
  und dann?

Danke im vorraus (auch für Deine bisherigen Bemühungen)

Gruß

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

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 06. Nov. 2008 15: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

Hi,

Kommando zurück, es funktioniert. Ich kopiere einfach eine vorgefertigte leere Exceltabelle in die Zeichnung und schon klappt's.

Also Danke noch mal.

Gruß

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


Ex-Mitglied

erstellt am: 06. Nov. 2008 15:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Zitat:
1. tAcadApp = GetObject(, "AutoCAD.Application")
  Set tAcadDoc = tAcadApp.Documents.Open  ("M:\...")
  ==> kommen sich in die Quere. Soll heißen, das Programm öffnet die
      Zeichnung erst, wenn AutoCad schon gestartet ist. Vielleicht
      müsste ich hier auf meine gute alte 'Shell'-Methode zugreifen

bevor AutoCAD nicht gestartet ist, kann auch keine Zeichnung geöffnet sein!?! Da hilft auch die Shell-Methode nicht weiter, auch wenn Du im Shell-Aufruf angeben kannst, welche Zeichnung zu starten ist, AutoCAD muss trotzdem gestartet werden.


Zitat:
2. Mein eigentliches Problem war ja das Einfügen von Zellen in die
  Zeichnung

wie Du auf die Werte in XLS hingreifst, gibt's ohne Ende im Internet, aber auch schon in diesem Forum. Die Frage ist, wie Du die Daten von Excel in AutoCAD haben willst. Auf die schnelle würden mir einfallen:
- OLE-Objekt
- Text
- MText (weiss jetzt nicht, ob der schon in 2002 existiert hat)
- Block mit Attributen

- alfred -

CHMR
Mitglied
Student


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

Beiträge: 11
Registriert: 04.11.2008

erstellt am: 07. Nov. 2008 15:36    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

Hi,
ich war wohl ein bisschen voreilig.
Wie kopiere ich jetzt eigentlich Excel-Zellen in die Zeichnung.
Oder aber wie kann ich auf eine schon in der Zeichnung bestehende Tabelle (AcadTable?) zugreifen bzw. sie aktivieren um hier meine Zellen einzufügen.

Danke im vorraus un schönes WE

Gruß

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


Ex-Mitglied

erstellt am: 07. Nov. 2008 17:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

tschuldigung, aber Tabelle in Acad2002? Nein, nicht wirklich!

Oder liege ich mit meiner obigen Vermutung bzgl. Acad2002 falsch?

- alfred -

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