Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Autocad Datensatz fortllaufend in Exceltabelle schreiben

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
Autor Thema:  Autocad Datensatz fortllaufend in Exceltabelle schreiben (1275 mal gelesen)
Christian Hilse
Mitglied


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

Beiträge: 7
Registriert: 10.01.2018

erstellt am: 10. Jan. 2018 15:38    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 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



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

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 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 Christian Hilse 10 Unities + Antwort hilfreich

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


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

Beiträge: 7
Registriert: 10.01.2018

erstellt am: 11. Jan. 2018 08:16    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

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



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

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 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 Christian Hilse 10 Unities + Antwort hilfreich

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


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

Beiträge: 7
Registriert: 10.01.2018

erstellt am: 11. Jan. 2018 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

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



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

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 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 Christian Hilse 10 Unities + Antwort hilfreich

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


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

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 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 Christian Hilse 10 Unities + Antwort hilfreich

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

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)2023 CAD.de | Impressum | Datenschutz