Autor
|
Thema: Makro zum Kopieren von Dokument zu Dokument (1714 mal gelesen)
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 25. Nov. 2011 09:42 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich bewege mich normalerweise in CAD-Bereich, habe leider sehr eingeschränkte Programmierkenntnisse. Um von einer bestehenden Stückliste in eine andere Stückliste die Daten zu kopieren suche ich ein Makro oder ähnliches mit dem man das automatisieren kann. Hat vieleicht jemand ne Idee oder besser noch ein Makro das ich mir evt. anpassen kann. Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 25. Nov. 2011 10:38 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 25. Nov. 2011 11:04 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hi Uwe, allgemeine Frage - allgemeine Antwort;-) So bekommst du zB. die Zellen A1-A3 aus Mappe1(Tabelle1) in Mappe2(Tabelle1) kopiert: Code: Sub Makro1() ActiveWorkbook.Sheets("Tabelle1").Range("A1:A3").Copy _ (Workbooks("Mappe2.xls").Sheets("Tabelle1").Range("A1")) End Sub
HTH - ansonsten gib mal bisschen mehr Input ;-) Gruß Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 25. Nov. 2011 11:19 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, Zitat: STRG+C > STRG+V = Makro genug?
so viel Makro kann und kenne ich auch Mein Problem ist, das ich für verschiedene Kunden verschiedene Stücklistenlayouts habe. Die einzelnen Werte die zu kopieren sind stehen nicht immer in der selben Spalte, Zeile,(Zelle?) Wenn nun ein Wert (z.B. Projektnummer) in der Ausgangsstückliste (siehe Bild Liste) in D3 steht so muß dieser in der Zielstückliste auf z.B. E1 (Bild Zielliste) stehen. Das selbe gilt für die einzelnen Positionen die Spaltenweise abgearbeitet werden müssen und auch unterschiedliche Ursprünge haben. Hoffe es ist verständlich erklärt. Gruß Uwe
[Diese Nachricht wurde von moppesle am 25. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 25. Nov. 2011 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hi moppesle, vorab: Eine Zelle ist der Schnittpunkt einer Zeile mit einer Spalte (ich hatte da eine versteckte Frage gewittert) . Gegenfragen ;-): Automatisieren lässt sich das schon, fraglich ist: Wie viel ist denn gleich, also welche Bereiche in welchen Registern sind identisch? Sehen wenigstens die (Quell)Listen oder die Zielliste(n?) immer gleich aus? Gut, es ließe sich auch im Makro nach der Projektnummer suchen, aber da wird's dann echt wild, und Du bist mehr mit der Kontrolle des Makros beschäftigt, als es Dir nutzt... Können sich die Quell- und/oder Zielbereiche ändern? Dann wird die Pflege schwierig, weil ein "Range("A1:A3")..." möglicherweise so nicht mehr stimmt. Von wie vielen Kopiervorgängen sprechen wir? Vermutlich wird hier keiner eine vorgefertigte Musterlösung liefern; deshalb ein Vorschlag: Schmeiß' mal den Makro-Recorder an, und poste hier. Oder Dummy-Mappe. ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 25. Nov. 2011 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Vielleicht noch ergänzend zu Paulchen, zumindest was die Listennummer/Bennennung angeht, könnte man da evtl. mit Namen arbeiten, zB so in der Art: Code: ActiveWorkbook.Sheets("Tabelle1").Range("Listennummer").Copy _ (Workbooks("Mappe2.xls").Sheets("Tabelle1").Range("Benennung"))
Die Zelladresse kann hierbei dann variabel sein, Zielzelle ist immer die Zelle, auf die sich der Name bezieht. Allerdings, die verbundenen Zellen sind IMHO ein böses Foul, damit machst Du dir richtig das Leben schwer;-) Auf die Zellverbände würde ich als erstes verzichten. Gruß Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 25. Nov. 2011 11:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Paulchen, Zitat: Sehen wenigstens die (Quell)Listen oder die Zielliste(n?) immer gleich aus?
Ja zu meinem Glück :). Hoffe ich doch.:) Zitat: Können sich die Quell- und/oder Zielbereiche ändern?
Nein :) Das läst mich sehr offen, das ich mit meinen Programmierkennnisen (sehr schlecht)mir das Makro immer an die ensprechende Zieldatei einmal anpassen kann. Zitat: Von wie vielen Kopiervorgängen sprechen wir?
Situation ist folgende. Wir haben für unser CAD-System ein Makro, das uns die Positionen der Bauteile und die dazugehörigen Parameter wie Bezeichnung, Material,Abmaße,usw. in ein Excelsheet schreibt.Dieses Sheet sieht immer gleich aus. Dies funktioniert sehr gut und lässt sich auch gut händeln. Wenn nun eine Änderung im 3D gemacht wird, und eine Aktualisierung der Stückliste von Nöten ist muß diese wieder generiert werden. Nun muß ich jedesmal die Werte aus der Queldatei in die Zieldatei kopieren. Dies kommt dann bei verschiedenen Projekten mehrmals vor. Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 25. Nov. 2011 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Na dann, auf geht's ! Makro-Rekorder anschmeißen, einen Kopiervorgang komplett vornehmen, Code hier rein. Einfacher wäre natürlich - wie oben angedeutet - eine (anonymisierte) Beispielmappe, die schon etwas Code enthält. Wenn Du speziell irgendwo hängst, wird Dir hier sicherlich weitergeholfen. Den ersten Schritt hast Du bereits getan, Du beschäftigst Dich damit. Der zweite heißt: Loslegen. Anmerkung: Vielleicht entdeckst Du, dass das mit Makros/VBA im vorliegenden Fall "Kanonen auf Spatzen" ist, und Copy+Paste ausreicht. Anderenfalls ist auch denkbar, dass Du "Blut leckst" und so richtig Spaß daran findest; ich hoffe auf Letzteres. ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |