Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro

Makro
21.04.2016 14:04:40
Fabian
Hallo liebes Forum,
ich stehe momentan vor einem Problem und bräuchte bitte eure Hilfe!
Zur Problembeschreibung:
Ich habe ein Excel File in Laufwerk A, welches eine Spalte mit den Zeichnungsnummern enthält. Eine Zeichnungsnummer heißt beispielsweise ik-16-a. Eine zweite heißt ik-23-b. Nun würde ich gerne jede Zeichennummer einzeln kopieren und in einem anderen Laufwerk B dannach suchen. Dabei möchte ich nach .dwg Dateien suchen, die die Zeichnungsnummern im Dateinamen beinhaltet. Beispielweise heißt eine .dwg Datei "item_300_ik-16-a.dwg". Diese Datei soll nun kopiert werden und wieder in Laufwerk A unter einer anderen Bezeichnung gespeichert werden. Das ganze soll mit jeder einzelnen Zeichnungsnummer erfolgen.
Kann mir hier bitte jemand helfen?
Ich bedanke mich vorab für eure Hilfe!
Liebe Grüße,
Fabian

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erste Hilfe
21.04.2016 14:35:02
Fennek
Hallo Fabian,
ich bin bereit dir zumindest ein Stückchen weiter zu helfen.
Als ersten Schritt solltest du den beigefügten Code testen, wenn es klappt kann man einen Befehl einfügen, um die Dateien zu kopieren.
Die Spalte B muss frei sein, oder du must eine andere Spalte einstellen.

Sub Fabian()
Pfad_Q = "c:\temp\" 'Quelle
Pfad_Z = "c:\temp\" 'Ziel
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr 'mit Header
sFile = Dir(Pfad_Q & "*" & Cells(i, 1) & ".dwg")
If sFile  "" Then Cells(i, 2) = sFile 'Spalte B muss frei sein 
mfg
PS: in Windows sind die Laufwerksbuchstaben A: und B: für Diskettenlaufwerke reserviert, kennst du so etwas noch?

Anzeige
AW: erste Hilfe
21.04.2016 14:54:24
Fabian
Hallo Fennek,
vielen Dank für deine Nachricht.
Kannst du vielleicht auf kurz erklären, was in den einzelnen Zeilen passiert?
Besten Dank!
Fabian

AW: erste Hilfe
21.04.2016 14:57:59
Fabian
Mit A und B habe ich einfach zwei Variablen benutzt. Die Laufwerke heißen k und j!
Dankeschön!

AW: erste Hilfe
21.04.2016 16:26:34
Michael
Hi zusammen,
[zur Begriffbestimmung:
Laufwerk J: das wird durchsucht, ob Datein vorhanden sind
K: dorthin soll kopiert werden]
da erhebt sich doch die Frage, ob Du das komplette Laufwerk j nach den Datein durchsuchen willst oder nur einen Pfad, z.B. J:\OberOrdner\UnterOrdner\Zeichnungen
Im ersten Fall würde ich den Gaul andersrum aufzäumen und zuerst das Laufwerk J in einem Rutsch nach "*.dwg" durchsuchen (d.h. selbige in ein Tabellenblatt oder eine sonstige Speicherstruktur einlesen) und das Ergebnis der Suche mit den Einträgen in Deinem Tabellenblatt vergleichen.
Das Suchen nach jeder einzelnen Datei dauert sonst zu lange (und schrabbt unnötig auf der Platte herum).
Schöne Grüße,
Michael

Anzeige
AW: erste Hilfe
21.04.2016 16:57:17
Fabian
Im unserem Laufwerk K erstellen wir eine Angebotstabelle:
Diese ist z.B. abgespeichert unter:
K:\Laufende Projekte\DEUTSCHLAND\SIEMENS Erlangen\2016_Borwin III\02_Angebot\Kalkulation
Nach Fertigstellung der Tabelle und anschließender Kalkulation soll in einem anderen Pfad ein Zeichnungssatz erstellt werden:
K:\Laufende Projekte\DEUTSCHLAND\SIEMENS Erlangen\2016_Borwin III\02_Angebot\Zeichnungen
In diesem Ordner sollen dann die eben die Zeichnungen von Laufwerk J (.dwg files) gespeichert werden
Und jetzt die Problemstellung:
Die Zeichnung I21K-161 (Pos. 300) ist im Laufwerk J:\Zeichnungen\Zusammenbauzeichnungen\I==Gerade-Klemmen\I2==2er-Bündel\I21K-161_BA03126.dwg abgespeichert und soll nun als Kopie nach K:\Laufende Projekte\DEUTSCHLAND\SIEMENS Erlangen\2016_Borwin III\02_Angebot\Zeichnungen unter der Bezeichnung Item_300.dwg abgespeichert werden.
Ich hoffe das Problem ist jetzt etwas eindeutiger.
Vielen Dank euch allen für eure Hilfe!

Anzeige
AW: erste Hilfe
21.04.2016 19:12:24
Fabian
Vielen Dank euch allen mal für eure Bemühungen. Würde mich freuen, wenn ihr mir noch etwas weiterhelfen könntet. Bin leider kein Programmierer und kenne mich eher mäßig mit Makros aus. Jede noch so kleine Hilfe würde mir persönlich sehr helfen! Vielen Dank!

zweite Hilfe
21.04.2016 22:26:57
Michael
Hi zusammen,
ich habe das Ganze mal in eine Datei gepackt und Fenneks Makro etwas abgeändert.
Die zentrale Idee bleibt die Gleiche: erst Mal testen, ob und was gefunden wird - das eigentliche Kopieren geschieht in einem zweiten Schritt.
Gerade weil Fabi etwas unerfahren zu sein scheint, ist das zwar umständlicher, aber schrittweise besser zu überblicken.
Man KÖNNTE das alles so aufbohren, daß die Datei unter ..\Kalkulation noch extra eingelesen wird, aber wozu? Es ist ein Handgriff, die Daten von dort (wir wissen ja nicht einmal, in *welcher* Spalte die Zeichnungskürzel stehen) über die Zwischenablage in die beiliegende Makro-Datei zu kopieren, und zwar hier bitte in den gelb markierten Bereich ab der zweiten Zeile in Spalte A. Wie weit die Daten unter der gelben Markierung weitergehen, ist völlig egal.
Wenn die Daten reinkopiert wurden, geht es so weiter:
1. "Wählen" wählt den Pfad zu den Zeichnungen, die kopiert werden sollen.
2. "Finden" schaut erst Mal, ob alle Datein da sind und liest deren KOMPLETTEN Namen ein. Wird eine nicht gefunden, steht in Spalte B dann "n.v."
3. "Kopieren" kopiert die Daten an den in F9 eingetragenen Pfad und nimmt dabei die Umbenennung des Dateinamens vor: "Item_xxx.dwg". Dieser wird dann in Spalte C geschrieben.
So hat man gleich eine Referenz, welche Zeichnung unter welchem neuen Namen kopiert wurde.
Falls unter 2. ein "n.v." steht, wird a) weitergezählt und b) ein " - " eingetragen.
Die xxx von Item_xxx.dwg werden NICHT formatiert (also mit führenden Nullen) übernommen, aber das ist nur ein Handgriff.
Wichtiger ist, ob die Nummerierung bei "n.v." oder evtl. Kopierfehlern (dann ist in C nämlich: "Fehler: " samt Nr. zu sehen) weiterlaufen soll oder nicht - im Moment WIRD weitergezählt, so daß bei evtl. Fehlern Lücken in der Nummerierung auftreten würden.
Die Datei: https://www.herber.de/bbs/user/105136.xlsm
Schöne Grüße,
Michael

Anzeige
AW: zweite Hilfe
22.04.2016 09:50:35
Fabian
Item;Description;Art.No.
300;Bündelanschlussklemme ;I21K-161
301;90° Klemme;L2FK-041
So sieht ein Ausschnitt der Tabelle aus, damit ihr auch seht wie die Spalten aussehen:
Die Zeichnung I21K-161 (Tabelle oben-Pos. 300) ist im Laufwerk J:\Zeichnungen\Zusammenbauzeichnungen\I==Gerade-Klemmen\I2==2er-Bündel\I21K-161_BA03126.dwg abgespeichert und soll nun als Kopie nach K:\Laufende Projekte\DEUTSCHLAND\SIEMENS Erlangen\2016_Borwin III\02_Angebot\Zeichnungen unter der Bezeichnung Item_300.dwg abgespeichert werden. Simultan soll Zeichnung L2FK-041 in Laufwerk J gesucht werden und dann wiederum in Laufwerk K im Zeichnungen Ordner unter der Bezeichnung item_301.dwg abgespeichert werden.
Vielen Dank Michael mal für deine Hilfe! Danke euch allen!

Anzeige
AW: zweite Hilfe
22.04.2016 14:26:24
Michael
Hi Fabian,
aha, so ist das mit den Item-Nummern.
Ich habe eine weitere, gelbe Spalte (nämlich C) für die Items eingefügt.
Die neue Datei: https://www.herber.de/bbs/user/105149.xlsm
Du kopierst also die beiden Spalten händisch und drückst die Buttons der Reihe nach...
Übrigens: bei der Suche nach den Datein wird der Begriff aus Spalte A verwendet, wobei egal ist, was davor oder dahinter im Dateinamen steht.
Deshalb findet das "l" in A4 auch die Datei "bla.dwg" - das Beispiel ist etwas unsinnig, aber im echten Einsatz sollte es schon so passen...
Schöne Grüße,
Michael

Anzeige
AW: zweite Hilfe
23.04.2016 09:27:59
Fabian
Hallo Michael,
vielen Dank für deine Nachricht. Ich habe mir gerade den Code im VBA Editor angesehen. Blöde Frage, aber muss ich jetzt diesen Code in das Excel-File in im Laufwerk J einpflegen? Zudem, ich muss den Code ja jetzt an meine Situation anpassen. Wo muss ich was reinschreiben? Tut mir leid, aber ich kenn mich mit Makros wirklich gar nicht aus?
Vielen lieben Dank!
Liebe Grüße,
Fabian

zur Bedienung
23.04.2016 15:15:55
Michael
Hallo Fabian,
an dem Code mußt Du rein gar nichts ändern.
Anbei die Datei mit einem Blatt "Bedienung": https://www.herber.de/bbs/user/105170.xlsm
Schöne Grüße,
Michael

Anzeige
AW: zur Bedienung
24.04.2016 18:21:56
Fabian
Hallo Michael,
vielen Dank für deine Bemühungen!
Ich werde es gleich morgen mal testen!
Dankeschön und liebe Grüße,
Fabian

AW: zur Bedienung
25.04.2016 16:05:39
Fabian
Hallo Michael,
ich habe es nun getestet und es funktioniert einwandfrei. Nur ein Problem habe ich: Unter dem Ordner \Zusammenbauzeichnung gibt es noch mehrere Unterordner, in denen die ganzen .dwg files drinnen sind. Momentan muss man jeden Ordner einzeln auswählen bzw. bei Pfad "Kopieren" angeben, sodass die Datei auch gefunden wird. Ist es auch möglich, dass man ab dem Ordner Zusammenbauzeichnungen alle .dwg files durchsucht?
Ich hoffe du weißt was ich meine!
Danke vielmals!
Beste Grüße,
Fabian

Anzeige
AW: zur Bedienung
26.04.2016 07:39:51
Michael
Hi Fabian,
prinzipiell geht das auch, allerdings mit etwas mehr Aufwand...
Vielleicht komme ich heute nachmittag dazu,
schöne Grüße,
Michael

AW: zur Bedienung
26.04.2016 09:14:04
Fabian
Das wäre super! Vielen Dank dir für deine Bemühungen! Wirklich sehr nett von DIR!
Liebe Grüße,
Fabian

noch ne Frage
26.04.2016 18:12:00
Michael
Hi Fabian,
ich habe am 21.04.2016 16:26:34 nicht ganz exakt formuliert, was ich gemeint hatte.
"Laufwerk" ist in dem Zusammenhang prinzipiell mit "Unterordnerstruktur" gleichzusetzen.
Damit ich mich für eine sinnvolle Herangehensweise entscheiden kann, sollte ich im Vorfeld wissen:
a) wieviele Datein wertest Du pro Auftrag aus? Also die Anzahl der Zeilen in Spalte A bzw. C
b) wieviele Unterordner mit jeweils wievielen Datein sind zu durchsuchen? Bzw. wieviele Datein befinden sich dort ca. insgesamt?
Also gut. Anbei erhältst Du eine neue Datei: https://www.herber.de/bbs/user/105271.xlsm
Sie enthält den neuen Button "Ordnerliste", der alle *.dwg, die unter dem Pfad in G2 liegen, auflistet.
Teste den mal bitte, ob der in Deiner Umgebung sauber läuft.
Wenn das der Fall ist, muß man für die einzelnen Daten in Spalte A nicht jedesmal auf der Platte/im Netz nach Datein suchen, sondern nur noch im zweiten Tabellenblatt.
Schöne Grüße,
Michael

Anzeige
AW: noch ne Frage
27.04.2016 08:40:36
Fabian
Vielen Dank für deine Antwort.
Zu deinen Fragen:
1) Also pro Auftrag werden ca. 150 - 200 Dateien ausgewertet.
2) Also es sind 2027 Unterordner und 26412 Dateien, die durchsucht werden, also eine große Anzahl.
Zum Verständnis: Wenn man nun auf den Button "Ordnerliste klickt" und ich dafür bei "Wählen" eine höhere Ebene ausgewählt habe, dann sollte er mir nun alle *.dwg Files für die einzelnen Zeichnungsnummern (definiert in Spalte A) heraussuchen und automatisch zuordnen (Spalte B einfügen) oder?
Vielen Dank für deine Hilfe.
Liebe Grüße,
Fabian

AW: noch ne Frage
27.04.2016 16:22:40
Michael
Hi Fabian,
nein, noch nicht!
Es gibt eine ganze Reihe unterschiedlicher Möglichkeiten, Datein zu suchen. Ich habe mich erst Mal für den entschieden, der mir am besten gefällt, weil er am wenigsten Schreibaufwand macht.
Der "Ordner"-Button liest nur alle Datein im angegebenen Pfad ins zweite Tabellenblatt ein. Dabei blitzt bei mir nur kurz ein schwarzes DOS-Fenster auf - kann sein, daß es bei 25000 Datein bis zu ein paar Sekunden stehen bleibt: das ist KEINE Fehlfunktion.
Das sind dann eben rund 26.500 Namen...
Dadurch wird aber nur EINMAL auf die "Hardware" zugegriffen und nicht 150 - 200 Mal, wie wenn man den Pfad samt Unterverzeichnissen nach jeder einzelnen Datei durchsucht.
Der "Ordner" ist also nur ein vorläufiger Zwischenschritt: wenn das funktioniert, kommt noch die Funktion mit dem Abgleich bzw. der Kopieraktion rein.
Deshalb möchte ich ja wissen, ob's geht.
Schöne Grüße,
Michael

AW: noch ne Frage
02.05.2016 18:22:38
Fabian
Hallo Michael,
hast du eine Idee was der Fehler sein könnte?
Beste Grüße,
Fabian

AW: zur Bedienung
29.04.2016 14:51:47
Fabian
Hallo,
wenn ich auf den Button "Ordnerliste" klicke, dann erscheint die Fehlermeldung: Datei nicht gefunden. Es ploppt kurz einzweites Fenster auf, welches gleich wieder verschwindet. Im Vordergrund erscheint gleich das Fenster mit der Fehlermeldung!
Beste Grüße,
Fabian Schnetzer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige