| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Autocad Datensatz fortllaufend in Exceltabelle schreiben (1277 mal gelesen)
|
Christian Hilse Mitglied
Beiträge: 7 Registriert: 10.01.2018
|
erstellt am: 10. Jan. 2018 15:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Excelfreunde, folgendes Problem möchte ich lösen, ich teile es mal in 2 Abschnitte. Abschnitt 1: Wir arbeiten mit vielen Entwicklern im Büro und nutzen AutoCad. Im Jahr entstehen ca. 1000 Projekte, die ich mit hilfe von Excel erfassen möchte. Aus Autocad heraus habe ich die Möglichkeit einen Datensatz in eine Exceldatei schreiben zu lassen. Der sieht wie folgt aus: Zeile 1 ist bei jedem Entwickler identisch: A1: Projektnummer B1: Aufsteller C1: Topper D1: Tray E1: Projektfoto Zeile 2 ist projektbezogen und soll "archiviert" werden: A2: 123456 B2: ja C2: ja D2: ja E2: Bildpfad Problem: Autocad bietet mir nicht die Möglichkeit eine fortlaufende Excel zu generieren (Wahrscheinlich bin ich auch nur zu doof). Speichert Entwickler 1 seinen Datensatz, wird dieser an Excel übergeben aber beim Speichern eines weiteren Datensatzes wird Zeile 2 überschrieben. Wie kann ich die Datensätze in Zeile 2 dauerhaft behalten um so ein Archiv aufzubauen? Abschitt 2: Um das Archiv sinnvoll zu nutzen, möchte ich auch ein Foto des Projektes hinzufügen. Autocad kann aber keine Bilder in die Excel "schreiben", sondern legt mir nur den Dateipfad des Bildes an. Die Projektbilder liegen alle im selben Ordner. Wie kann ich nun diesen Pfad automatisch durch das Bild ersetzen lassen?
LG
Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 11. Jan. 2018 01:12 <-- editieren / zitieren --> Unities abgeben: Nur für Christian Hilse
Hallo Christian, Willkommen im Forum So ganz verstehe ich Dein Problem nicht. Frage: Mit welchen Tool schreibt Ihr die Exceltabelle? Habt Ihr das selber entwickelt? Wenn ja, würde ich vor dem Schreiben des neuen Datensatzes eine Leerzeile in Zeile 2 einfügen
Code: Rows("2:2").Insert Shift:=xlDown
damit würden die alten Daten erhalten bleiben und das neueste Projekt kann in Zeile 2 geschrieben werden ohne Daten zu verlieren. Ergänzt man obigen Code zum Bildeinfügen (hier in Zelle F2) ergäbe sich folgendes Makro
Code:
zHoehe = 3# / 0.035277778 ' = 84.75 ' Angabe in Pixel Höhe = 3 cm Rows("2:2").Insert Shift:=xlDown' => Hier Euer Code zur Datenübernahme ' Range("E2") = "(Bildpfad)" ' Range("A2") = "(Bildname)" ' in der Hoffnung dass dieser mit dem Projektnamen identisch ist strBild = Range("E2").Value & "\" & Range("A2").Value & ".BMP" ' oder auch JPG, je nach Bedarf Range("2:2").RowHeight = zHoehe ' Festlegen der Zeilenhöhe Range("F2").Select ' Hier wird das Bild eingefügt ActiveSheet.Pictures.Insert( _ strBild _ ).Select With Selection .Placement = xlMoveAndSize .PrintObject = True .ShapeRange.LockAspectRatio = msoTrue .ShapeRange.Height = zHoehe End With
Obiger Code wurde direkt in Excel getestet. Für die Bearbeitung aus Autocad heraus muß natürlich noch das entsprechende WorkSheet-Objekt vor die Range-Objekte gesetzt werden aber das habt Ihr ja bei Euch bereits definiert. Grüße Klaus PS.: Es ist immer sinnvoll bereits vorhandenen Code hier ergänzend zur Beschreibung einzustellen, dann könnte auf diesen aufgebaut werden PPS.: Natürlich könnte man auch vor dem Schreiben die letzte Zeile suchen und dort die nächste Zeile schreiben. Beispiele dazu findest Du verschiedene im Excel-Forum [Diese Nachricht wurde von KlaK am 11. Jan. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian Hilse Mitglied
Beiträge: 7 Registriert: 10.01.2018
|
erstellt am: 11. Jan. 2018 08:16 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen Klaus, vielen Dank für deine Hilfe. Zu deiner Frage: Ich habe in AutoCAD die Möglichkeit eine Tabelle anzulegen und diese mit einer Tabelle in Excel zuverknüpfen. Dies geschieht mit einem Verknüpfungsmanager. Änderungen in der AutoCAD Tabelle werden dann automatisch in die Excel geschrieben. Wir haben also nichts selber programmiert sondern nutzen die Tools von AutoCAD. Zu deinem Code: Füge ich den in die Exceldatei ein, oder muß das schon iwie (?) in AutoCAD geschehen. Beste Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 11. Jan. 2018 14:58 <-- editieren / zitieren --> Unities abgeben: Nur für Christian Hilse
Hallo Christian, Ok, dann wird es mit dem geposteten Code so nichts und man müßte die Einzelwerte der einzelnen Tabellen in einer Gesamtmappe (oder vielleicht gleich in einer Access-Datenbank?) zusammenführen. Müßtet Ihr Euch mal Gedanken dazu machen, ob das mit Copy&Paste geschehen soll oder automatisch über ein kleines Programm dass alle im Verzeichnis vorhandenen Exceldateien untersucht und nicht vorhandene Werte ergänzt. So etwas ähnliches hatten wir letztens schon, wäre also nicht schwer dies umzusetzen. Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian Hilse Mitglied
Beiträge: 7 Registriert: 10.01.2018
|
erstellt am: 11. Jan. 2018 15:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus, danke erstmal für deine Lösungsansätze. Ich werde mich hier mal beraten und die IT hinzuzuiehen. Ich glaube ich hatte mich auch nicht deutlich aufgedrückt: Nur nochmal zum Verständnis: Ziel ist es von verschiedenen Rechnern mit Autocad jeweils eine Tabellenzeile in eine Excelmappe zu übertragen und diese zu sammeln. Das übertragen funktioniert bereits, nur das sammeln nocht nicht(Danke für den Link). Desweiteren können keine Bilder der Projekte an Excel übertragen werden, sondern nur der Pfad zum Bild Ich würde mich nächste Woche nochmal mal bei dir melden, wenns ok ist? Du scheinst mir ja den Durchblick in Sachen CAD und Excel zu haben. Vielen Dank an dieser Stelle für deine Mühe.
Beste Grüße Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2022 Plateia, Canalis Visual Basic
|
erstellt am: 11. Jan. 2018 17:52 <-- editieren / zitieren --> Unities abgeben: Nur für Christian Hilse
Hallo Christian, ich denke ich habe Dich schon richtig verstanden. Derzeit ist Euer Problem dass wohl - Vorlagenbedingt - immer die gleiche Excelmappe verwendet wird und deswegen die Werte in der Zeile überschrieben werden. Für die oben erwähnte Zusammenführung müßten hier natürlich unterschiedliche Excelmappen erzeugt werden. Ist zugegeben auch Fehleranfällig. Andere Variante wäre eben ein Autocad-VBA das die Tabellenwerte in einer Excelmappe ergänzt. Kenne mich aber mit Autocad Tabellen und Verknüpfungen hier zu wenig aus um beurteilen zu können ob das evtl. auch mit Bordmitteln geht, programmtechnisch sollte es machbar sein. Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rexxitall Mitglied Dipl. -Ing. Bau
Beiträge: 266 Registriert: 07.06.2013 Various: systems, Operating systems, cad systems, cad versions, programming languages.
|
erstellt am: 15. Jan. 2018 10:12 <-- editieren / zitieren --> Unities abgeben: Nur für Christian Hilse
Multiuserzugriff - sqlite Datenbank und dann nach excel rausschreiben. Gibt es 32 u 64 bittig mit VBA Anschlus.SQLITE übernimmt in dem Falle das Multiuserhandling. Ranges solltet ihr bei Excel mal vergessen. Man kann die Excel Tabellen fast wie ein zweidimensionales Array mit dem Zugriff über CELLS verwenden. Siehe vorigen Thread mit Beispiel von mir. Lieben Gruß Thomas ------------------ Wer es nicht versucht, hat schon verlorn Und bei 3 Typos gibts den vierten gratis ! <<< for sale ! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |