Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Ralf, bei mir läuft es mit entfernten Anführungszeichen. Problem kann natürlich sein, wenn z.B. in Deinem Testverzeichnis Dateien liegen, die als aktives Blatt ein Diagrammblatt haben oder Makrodateien mit Autostart- / Workbook_Open-Makros oder ... Das feste Verdrahten würde aber voraussetzen, dass die Datei auch in das Verzeichnis mit den Daten kommt. Ich mache das nicht, weil das zum einen nicht gefordert war und zum anderen kann es durchaus sogar hinderlich sein, wenn man Daten im Netzverzeichnis hat und dort keine Makrodateien ablegen kann. Man müsste auch schauen, ob sich die Masterdatei nicht selbst kopiert  ... Als Konstanten am Programmanfang ist das recht übersichtlich und man braucht die Angaben nur dort zu ändern. Wo Stefan jetzt bei mir eine Paste gesehen hat und ein fehlendes ThisWorkbook kann ich nun wiederum nicht nachvollziehen  und ein Master.xlsb von Ralf gibt es doch nicht, oder? Da steht nur Master.xlsx im Posting #2.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo André, (13.06.2015, 19:47)schauan schrieb: Wo Stefan jetzt bei mir eine Paste gesehen hat und ein fehlendes ThisWorkbook kann ich nun wiederum nicht nachvollziehen  das Paste steht im Beitrag Nr. 6 von Ralf und du hast es im Folgebeitrag auch drin stehen. Und mit dem ThisWorkbook: Da wollte ich auch die passende Datei verweisen.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 10.04.2014
Version(en): 2016 + 365
13.06.2015, 20:49
(Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2015, 20:52 von Rabe.
Bearbeitungsgrund: nach Test
)
Hi André, (13.06.2015, 19:47)schauan schrieb: bei mir läuft es mit entfernten Anführungszeichen. Problem kann natürlich sein, wenn z.B. in Deinem Testverzeichnis Dateien liegen, die als aktives Blatt ein Diagrammblatt haben oder Makrodateien mit Autostart- / Workbook_Open-Makros oder ...
Das feste Verdrahten würde aber voraussetzen, dass die Datei auch in das Verzeichnis mit den Daten kommt. Ich mache das nicht, weil das zum einen nicht gefordert war und zum anderen kann es durchaus sogar hinderlich sein, wenn man Daten im Netzverzeichnis hat und dort keine Makrodateien ablegen kann. Man müsste auch schauen, ob sich die Masterdatei nicht selbst kopiert ... Als Konstanten am Programmanfang ist das recht übersichtlich und man braucht die Angaben nur dort zu ändern.
Wo Stefan jetzt bei mir eine Paste gesehen hat und ein fehlendes ThisWorkbook kann ich nun wiederum nicht nachvollziehen und ein Master.xlsb von Ralf gibt es doch nicht, oder? Da steht nur Master.xlsx im Posting #2. in meinem Testverzeichnis liegen nur diese 4 Dateien. Ich hänge sie jetzt nochmal dran:
Master.xlsb (Größe: 16,54 KB / Downloads: 6)
Daten 1.xlsx (Größe: 9,2 KB / Downloads: 5)
Daten 2.xlsx (Größe: 7,71 KB / Downloads: 4)
Daten 3.xlsx (Größe: 7,71 KB / Downloads: 4)
Mit dem festen Verdrahten hast Du recht. Das Paste kam von meinem Makro aus Beitrag #6 von 09:36 h, weil ich zum Testen die Copy- und die Paste-Zeile getrennt habe, um rauszukriegen, wo der Fehler kommt. Ich versuche es jetzt nochmal mit dem Master in einem anderen Verzeichnis. Ne, kopiert immer noch nix.
Registriert seit: 11.04.2014
Version(en): Office 2007
13.06.2015, 21:16
(Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2015, 21:30 von Steffl.)
Hallo Ralf, versuche mal die Zeile so zu ändern. Code: Activeworkbook.Worksheets(1).Range(strSRange).Copy ThisWorkbook.Sheets(strSheet).Cells(ThisWorkbook.Sheets(strSheet).Cells(Rows.Count, 1).End(xlUp).Row + 1, iCol)
Gruß Stefan Win 10 / Office 2016
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Stefan, jetzt, wo Du es sagst  Ich hab mich so auf meinen code konzentriert, da ist mir die Paste von Ralf gar nicht aufgefallen.  Aber die Ursache für das Nicht-Kopieren ist jetzt auch gefunden. Ich wundere mich nur, wieso bei mir neue Daten erschienen sind. Normalerweise ist es so, dass sich eine Adressangabe ohne weitere Angaben auf das aktive Blatt bezieht. Das aktive Blatt ist das Blatt, mit dem eine Mappe geöffnet wurde - sofern man da nicht noch dran herumwerkelt. Das ist wohl nicht immer so. Ich habe in der Überwachung sowohl ActiveWorkbook.Name als auch Range("A9:T44").Parent.Parent.Name geprüft und siehe da - ActiveWorkbook war zwar Daten1.xlsx, die "Großeltern" vom Range war jedoch die Master.xlsb. Mit dem entsprechenden Zusatz funktioniert es dann: ActiveSheet.Range(strSRange).Copy ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
13.06.2015, 23:45
(Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2015, 00:03 von Rabe.)
Hi André und Stefan, (13.06.2015, 21:38)schauan schrieb: Mit dem entsprechenden Zusatz funktioniert es dann: ActiveSheet.Range(strSRange).Copy ... ja, jetzt funktioniert es, jetzt wird es aber schon ab Zeile 2 eingefügt. Jetzt mal sehen, was "Sunflower" dazu sagt.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
14.06.2015, 05:08
(Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2015, 05:11 von schauan.)
Hallo Ralf, Ist ein wichtiger Hinweis. Ich vermute nach der Fragestellung 2. und 3., dass die Einträge in der Masterdatei auch erst ab Zeile 9 losgehen werden. Da wird oben drüber noch ein Kopf und vielleicht mehr sein ... Hier noch zwei weitere Hinweise: 1. Es funktioniert nur dann, wenn in den 100 Tabellen die Spalte A bis zum Ende des Datenbereichs (bzw. zumindest in der letzten Zeile) gefüllt ist. Wenn z.B. in der letzten Zeile im Datenbereich kein Eintrag ist, wird diese Zeile nicht übernommen. 2. Wenn im kopierten Bereich Leerzeilen enthalten sind, werden diese nicht entfernt. Ich vermute aber, dass sich die Anforderung nach der Fragestellung 4. nur auf Leerzeilen zwischen den Bereichen der einzelnen Tabellen bezieht. Schauen wir mal
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, hier dann noch mein Senf dazu.  Die Masterdatei befindet sich mit den 100 Dateien in einem Verzeichnis. Der Pfad wird automatisch ermittelt. Code: Sub AlleEinlesen()
Dim lngAnzahlSpalten As Long Dim lngAnzahlZeilen As Long Dim lngStartzeile As Long Dim lngZaehler As Long Dim strDatei As String Dim strPfad As String Dim wsZiel As Worksheet lngAnzahlSpalten = 20 lngAnzahlZeilen = 36 lngStartzeile = 5 'erste Zeile im Zielblatt strPfad = ThisWorkbook.Path & "\" Set wsZiel = ThisWorkbook.Worksheets("Tabelle1") 'Bildschirmflackern aus Application.ScreenUpdating = False 'Zielbereich erst einmal leeren With wsZiel .Range(.Cells(lngStartzeile, 1), .Cells(.Rows.Count, .Columns.Count)) = "" End With strDatei = Dir(strPfad & "*.xls*") 'erste Datei im Verzeichnis Do While strDatei <> "" 'Schleife, solange eine Datei gefunden wurde If strDatei <> ThisWorkbook.Name Then 'nur andere Dateien werden geöffnet With Workbooks.Open(Filename:=strPfad & strDatei, ReadOnly:=True) 'Bereichsübertrag wsZiel.Cells(lngStartzeile + lngAnzahlZeilen * lngZaehler, 1).Resize(lngAnzahlZeilen, lngAnzahlSpalten).Value = _ .Worksheets(1).Cells(9, 1).Resize(lngAnzahlZeilen, lngAnzahlSpalten).Value .Close False 'Quellmappe schliessen End With lngZaehler = lngZaehler + 1 End If strDatei = Dir() 'Naechste Datei im Verzeichnis ermitteln Loop 'Bildschirmflackern ein Application.ScreenUpdating = True MsgBox "Es wurden " & lngZaehler & " Dateien übertragen.", vbInformation End Sub
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi Uwe, (14.06.2015, 07:57)Kuwer schrieb: hier dann noch mein Senf dazu.  Die Masterdatei befindet sich mit den 100 Dateien in einem Verzeichnis. Der Pfad wird automatisch ermittelt. dies ist auch sehr schön gelöst. Was anderes: Wenn ich die Master-Datei abspeichere (schon von Anfang an), kommt immer der Warnhinweis, daß möglicherweise persönliche Daten enthalten seien, die durch die Dokumentenüberprüfung nicht entfernt werden können. Wie bekomme ich diese Meldung weg? Es liegt nicht an den ActiveX-Formular-Steuerelementen.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hi Ralf, das hat mich auch gewundert. Vielleicht liegt es ja daran, dass Du aus einer Uraltdatei (Inhalt erstellt: 16.09.2006 2:00) diese xlsb erstellt hast. Gruß Uwe
|