HERBERS Excel-Forum - das Archiv

Thema: Daten aus externer Datei als Bereich übernehmen... ?

Daten aus externer Datei als Bereich übernehmen... ?
earlycon
Hallo zusammen,
ich müsste wieder einmal um Eure Hilfe und Unterstützung bitten... 😉

Ich habe mehrere separate Tabellen (Dateien) in denen jedes Referat Eintragungen vornimmt. In einer Masterdatei gibt es ebenfalls für jedes Referat eine separate Tabelle, mit gleichem Aufbau. Nun sollen die Daten aus den Referaten in das jeweilige Blatt in der Mastertabelle übertragen werden können. Das habe ich in einem anderen Projekt schon mal mit folgender Funktion gemacht (hier beispielhaft in Auszügen):

Private Function GetValue(pfad, datei, blatt, zelle)
'** Daten aus geschlossener Arbeitsmappe auslesen
...
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)
'** Auslesen über Excel4Macro
GetValue = ExecuteExcel4Macro(arg)
...

Meine Frage wäre nun, ob man die Daten wirklich nur Zelle für Zelle übertragen kann, oder ob man auch einen ganzen Bereich auf einmal übertragen kann. Da hapert es leider an meiner Kenntnis. Wäre nett, wenn mir da jemand auf die Sprünge helfen könnte. Gleichzeitig noch eine Frage, ob eine Datenübertragung quasi mit Wenn-Abfrage möglich ist, also nur wenn bestimmte Bedingungen erfüllt sind.

Herzlichen Dank für Eure Unterstützung und viele Grüße
Stefan
AW: Daten aus externer Datei als Bereich übernehmen... ?
Oberschlumpf
Hi Stefan,

wieso dürfen die einzelnen Dateien...
...für's Auslesen nicht geöffnet...
...und wenn fertig mit Auslesen, automatisch wieder geschlossen werden?

Bsp-Dateien per Upload sowohl von Master- als auch einzelnen Dateien wären hilfreich, um testen/programmieren zu können.

Ciao
Thorsten
AW: Daten aus externer Datei als Bereich übernehmen... ?
schauan
Hallöchen,

1)
die Zellweise Übertragung hat sicher den Hintergrund, dass nicht alle Zellen benötigt werden,
2)
Du könntest auch die Formeln zum Datenziehen in Deine Datei einfügen und nach Berechnung die Werte übernehmen
3)
ich würde alternativ zumindest mal PowerQuery versuchen.
4)
so was würde auch gehen
https://www.online-excel.de/excel/singsel_vba.php?f=135

AW: Daten aus externer Datei als Bereich übernehmen... ?
earlycon
Hallo Oberschlumpf,

vielen Dank für Deine Rückmeldung uns sorry, dass ich mich jetzt erst melde. Ich muss mir hier immer erst Freiraum schaffen...

Ich habe mal neutrale Dateien erzeugt, wenn Du mal schauen magst... (Hoffe ich bekomme das hin mit dem Upload).
Könnte es Probleme geben ,wenn eine Datei zum Zeitpunkt der Datenübernahme in die Masterdatei bereits geöffnet ist ?

https://www.herber.de/bbs/user/168987.xlsx (Master)
https://www.herber.de/bbs/user/168989.xlsx (Referat 1)
https://www.herber.de/bbs/user/168990.xlsx (Referat 2)

Danke für Deine Unterstützung, viele Grüße
Stefan

AW: Daten aus externer Datei als Bereich übernehmen... ?
Oberschlumpf
Hi,

"...also nur wenn bestimmte Bedingungen erfüllt sind."
Du musst uns nich verraten, um welche Bedingungen es geht, wenn aber wir freie Wahl haben beim Setzen von Bedingungen, oder diese einfach ganz weglassen, wird dir das auch nicht helfen, oder?!?

Ciao
Thorsten
echt jetzt???? ich bin wieder raus!!!! wer anders bitte
Oberschlumpf
Hi,

hab mir deine 3 Bsp-Dateien mal angesehen.

Deine Wünsche waren:
- alle Daten aus der Datei "Referat 1" in die Datei "Master", Blatt "Referat 1" zu übertragen
aber die Datei "Referat 1" enthält gar keine Daten!!! :-/

- alle Daten aus der Datei "Referat 2" in die Datei "Master", Blatt "Referat 2" zu übertragen
aber auch die Datei "Referat 2" enthält gar keine Daten!!! :-/
UND Inhalt von Datei "Referat 2" (Überschriften, usw) sieht genau so aus wie in Datei "Referat 1" !!!


Mich ärgern solche Schlampereien.
Sorry, aber wer eine qualifizierte Antwort erwartet/sich wünscht - muss zuerst mal eine qualifizierte Frage stellen / Aufgabe liefern!

Ich bin wieder raus...können ja andere dir weitere Fragen stellen :-/

Ciao
Thorsten
AW: echt jetzt???? ich bin wieder raus!!!! wer anders bitte
schauan
Hallöchen,

so wie es ausschaut, willst Du Daten aus dem Bereich B1:Kxxx kopieren und in deinen Master einfügen.

Das könnte ein Ansatz sein:

Sub DatenHolen()

Dim objWsh As Worksheet, objwB As Workbook
'Datei oeffnen und Tabellenblatt Refarat 1 zuweisen
Set objWsh = GetObject("C:\Test\A\168989.xlsx").Worksheets("Referat 1")
'mit dem Tabellenblatt
With objWsh
'Bereich B1:K100 kopieren
.Range("B1:K100").Copy
'Im Master in B1 die Werte uebernehmen
ThisWorkbook.Sheets("Referat 1").Range("B1").PasteSpecial Paste:=xlValues
'Datei schliessen
.Parent.Close SaveChanges:=False
'Ende mit dem Tabellenblatt
End With
End Sub


Hinweise:
1) entscheide Dich bei den Bezeichnungen für Referat oder Refarat ...
2) löse alle verbundenen Zellen auf. Überschriften bekommt man z.B. auch durch "Über markierten Zellen zentrieren" in die Mitte ...
3) man kann das Kopieren auch auf den benutzten Bereich einschränken oder ausdehnen
4) man könnte z.B. die Quelldaten nach bestimmten Daten filtern und die gefilterten Daten übernehmen
5) man könnte die Daten anhängen oder überschreiben.
--> Zumindest beim Anhängen sollte man natürlich nur ab Zeile 11 kopieren. Da wäre ggf. das Datum in I5 zu korrigieren / kopieren
--> Beim Überschreiben sollte man zuerst die Zieltabelle leeren.
6) ...
AW: echt jetzt???? ich bin wieder raus!!!! wer anders bitte
earlycon
Hallo schauan,

vielen Dank für Deine Hinweise. Ich habe das Werk jetzt vollendet 😄 Habe die Daten aber nicht mit der Funktion geholt, sondern die Referat-Datei im Hintergrund geöffnet und die Daten direkt in die Masterdatei kopiert. Wenn man weiß, wie das geht, funktioniert das prächtig. Dafür ist es immer wichtig, wenn man von euch Profis hilfreiche Tipps bekommt, vielen Dank nochmals dafür.

Dir einen schönen Tag und viele Grüße
Stefan
AW: echt jetzt???? ich bin wieder raus!!!! wer anders bitte
earlycon
Hi Thorsten,

entschuldige bitte... ich kann Dich ja verstehen 😔 Ich hatte ja auch keine fertige Arbeit von euch Helfern erwartet, sondern eher Anregungen. Die Daten, die da mal rein sollen, habe ich ja selber noch nicht und denke mir da immer irgendwas aus. Es ging halt eher um das technische. Aber ich habe es inzwischen hinbekommen (externe Datei im Hintergrund öffnen und Daten kopieren).

Trotzdem möchte ich mich bei Dir bedanken, ist ja nicht selbstverständlich, dass ihr eure Zeit hier verbringt.

Liebe Grüße
Stefan
nun auch ne Erklärung von mir
Oberschlumpf
Hi Stefan,

und vielen Dank für deine Erklärung.

Dass du zum Zeitpunkt der Fragestellung selbst noch keine (Bsp)Daten hast, macht das Ganze nicht einfacher.

Denn, egal...
- ob wir eine "fix+fertig-Lösung" anbieten
- oder ob wir auf deinen genauer erklärten Wunsch, nur "Richtungsideen" liefern, die dich vielleicht weiterbringen
...in jedem Fall sind Daten erforderlich.

Denn um "fix+fertig" oder "Richtungsideen" erreichen zu können, müssen wir ja selbst erst mal testen - und zum Testen brauchts nun mal Daten; und wenn es nur erst mal von dir gelieferte BSP-Daten gewesen wären.

Ciao + weiter viel Erfolg!
Thorsten