Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus anderer Mappe auslesen - Nr. 3

Daten aus anderer Mappe auslesen - Nr. 3
26.10.2018 15:48:41
Andreas
Hallo liebe Forumer,
ich schon wieder. Ich bräuchte nochmal eine Hilfestellung,
nachdem Ihr mir schon ein paar Mal so gut geholfen habt.
Ich habe eine Quelldatei die über einen Export & ein Makro
ausgewertet wird. (Fertige Auswertung s. Datei)
Nun möchte ich gerne von der Zieldatei aus, Daten aus der Quelldatei auslesen, summieren und in Zieldatei einfügen. Hier müsste aber erst geprüft werden, ob der
Monat in der Quelldatei (z.b. "September 2018") = Monat in Zieldatei ist (dann auch "September 2018"). Dann sollten aus der Quelldatei die Werte (Zelle 3-7) der jeweiligen Kostenstellen (Spalte 2=Kostenstelle = 1030,1040,1050,8888 & 8999) kopiert werden und in Zieldatei nebeneinander in dem korrekten Monat z.B."September 2018" ab Spalte 3 nach rechts geschrieben werden.
Quelldatei:
https://www.herber.de/bbs/user/124928.xlsx
Zieldatei:
https://www.herber.de/bbs/user/124929.xlsx
Es ist ein wenig schwierig das genau zu erläutern.
Ich hoffe Ihr könnt meine Erklärung verstehen.
Danke vorab für eure Hilfe.
Gruß
Andreas

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
27.10.2018 19:38:46
Matthias
Moin!
Ein bissl verworren beschrieben. Hoffe mal, dass ich es richtig verstanden habe. Hier mal mein Code zum Auslesen und eintragen. Es werden aber nur die 5 Kostenstellen summiert, die du auch aufgeführt hast. Einfach mal probieren. Beim Eintragen, wird in dem Monat aber der Voreintrag überschrieben.
Sub auswerten()
Dim name As String
Dim pfad As String
Dim datei As Workbook
Dim ziel
Dim ende As Long
Dim daten
Dim datum As String
Dim zeile As Long
Dim summe As Double
Dim i As Long, j As Long
Dim quellspalte
Dim summen(5)
pfad = "meinPfadzurDatei"       'hier den Pfad zur Datein eintragen , könnte man auch  _
raussuchen lassen
name = "quelle.xls"                 'hier den Dateinamen eintragen
Set ziel = ActiveSheet
ende = ziel.Cells(ziel.Rows.Count, 1).End(xlUp).Row
quellspalte = Array(7, 8, 9, 14, 15)
Application.ScreenUpdating = False
If Right(pfad, 1)  "\" Then pfad = pfad & "\"
Set datei = Workbooks.Open(pfad & name)
daten = datei.Worksheets(1).UsedRange
datei.Close saveChanges:=False
datum = daten(2, 3)
zeile = 0
For i = 3 To 7
summe = 0
For j = 0 To UBound(quellspalte)
summe = summe + daten(i, quellspalte(j))
Next
summen(zeile) = summe
zeile = zeile + 1
Next
For zeile = 1 To ende
If ziel.Cells(zeile, 1) = datum Then
ziel.Cells(zeile, 3) = summen(2)
ziel.Cells(zeile, 4) = summen(0)
ziel.Cells(zeile, 5) = summen(1)
ziel.Cells(zeile, 6) = summen(3)
Exit For
End If
Next zeile
Application.ScreenUpdating = True
MsgBox "Die Auswertung ist beendet!", , "Ende"
End Sub

VG
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
29.10.2018 08:26:48
Andreas
Hallo Matthias,
danke für deine Hilfe. Schön das du meine Beschreibung verstehen konntest :o)
Es klappt alles soweit erstmal.
Ist es noch möglich das folgende Array/Code anzupassen?
Die Quelldatei ist ein Export aus einem Programm, sprich die
auszuwertenden Kostenstellen stehen nicht immer in der gleichen Spalte.
Hier kommen u.U. weitere Spalten hinzu.
quellspalte = Array(7, 8, 9, 14, 15)
Das wäre echt super.
DANKE vorab.
Gruß
Andreas
AW: Daten aus anderer Mappe auslesen - Nr. 3
30.10.2018 01:57:30
Peter
Hallo Andreas,
dadurch, dass die Kostenstellenspalten in der Praxis ganz unterschiedlich angeordnet sein können, ist die Lösung des Problems leider nicht ganz einfach. Ich habe neben Deinem Auswertungs-Schema eine Hilfskonstruktion gesetzt. Dabei gehe ich davon aus, dass sich die Anzahl der Kostenspalten nicht erhöht.
Ich schlage die folgende Dateiorganisation vor.
1) Lege einen Speicherordner für alle Quelldateien sowie die Zieldatei fest. In meinem Beispiel „E:\Musterloesungen\Andreas_Quelle_und_Ziel\“.
2) Alle auszuwertenden Quelldateien bekommen einen einheitlichen Namensstamm. In meinem Beispiel „Quelle“. Der Namensstamm wird durch den Monat (einschl. Jahr) ergänzt, die Verbindung erfolgt durch einen Unterstrich. Dahinter die Dateiendung „.xlsx“.
3) Da, wo dies in dem Makro1 der Zieldatei vermerkt ist, bitte die Bezeichnungen auf Deine Namen abändern.
4) Die gelben Felder in der Zieldatei bitte entsprechend ausfüllen.
5) Speichere die Dateien auf den von Dir gewählten Pfad ab.
Anschließend kannst Du mit dem Test beginnen: Monat auswählen und „Ausführen“ klicken.
Hier die Zieldatei
https://www.herber.de/bbs/user/124995.xlsm
… und hier die drei Quelldateien
https://www.herber.de/bbs/user/124996.xlsx
https://www.herber.de/bbs/user/124997.xlsx
https://www.herber.de/bbs/user/124998.xlsx
Bei dieser Lösung ist es egal, in welchen Spalten die gewünschten Kostenstellen stehen. Auch die Reihenfolge der Kosten in den Quelldateien spielt keine Rolle. Der Lohn sollte jedoch stets an letzter Stelle stehen. Die Auswertung kann auch um weitere Kostenstellen ergänzt werden (Spalten M bis Z).
Bitte mal ausprobieren; Rückmeldung wäre schön.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
30.10.2018 09:13:53
Andreas
Hallo Peter,
vielen Dank für deine Mühen.
Ich habe noch 1 Fragen bitte:
1. Du hast 3 Quelldateien (August-Oktober) erstellt. Ich verstehe das nicht so ganz warum.
Ich erkläre nochmal meine Vorgehensweise:
Ich exportiere die 1 Quelldatei aus einem Programm und werte diese über ein Makro in Tabelle 1
aus. D.h. die Datei wird monatlich neu erstellt/exportiert und die Summen monatlich kumuliert.
Januar -Septemper / Januar - Oktober etc.. Das Datum des auszuwertenden Monats geht mit in Tabelle1.
(im Beispiel September 2018). Dieser String soll nun mit dem Monat (Spalte A) in der Aggregation
verglichen werden und die Werte sollten im korrekten Monat eingetragen werden. Danach wird die
Quelldatei nicht mehr benötigt und gelöscht. U.U. kann es tatsächlich sein, dass weitere
Kostenstellen hinzukommen. Im Grunde sollte nur nach den 5 bestimmten Kostenstellen geschaut und
die Werte übertragen werden. Die Kostenstellenspalten werden immer aufsteigend nach KST-Nr.
angeordnet.
Evtl. bringt dies noch mehr Klarheit. Oder bleibt das Problem weiter gleich.
Ich teste deine VErsion gleich nochmal ausgiebig.
Danke Andreas
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
30.10.2018 11:43:19
Peter
Hallo Andreas,
die Quelldateien als Ausgangsgrundlage für Deine Auswertungen sollten m. E. gespeichert werden, denn sonst sind Deine Auswertungen nicht mehr nachvollziehbar. Durch das Speichern mit dem zutreffenden Monat wird dann bei der Auswertung zwangsläufig immer die richtige Datei gezogen. Es ist also keine weitere Überprüfung erforderlich. Die Speicherung könnte sinnvollerweise nach dem Export aus dem von Dir angeführten Programm erfolgen. Da Monat und Jahr als Text in den Quelldateien vorhanden sind, wäre vielleicht ein kleines Programm sinnvoll, welches per Knopfdruck die Abspeicherung erlaubt.
Die drei Quelldateien habe ich für den Test erstellt. Sie haben einen unterschiedlichen Spaltenaufbau, um die Funktionsfähigkeit zu testen.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
30.10.2018 14:27:11
Andreas
Hallo Peter,
habe deinen Code getestet. Läuft !
Werde es dann wie von dir vorgeschlagen angehen (Dateien speichern etc.)
Danke für deine Unterstützung.
Gruß
Andreas
AW: Daten aus anderer Mappe auslesen - Nr. 3
30.10.2018 16:44:20
Peter
Hallo Andreas,
es freut mich zu hören, dass Du auf meinen Vorschlag eingegangen bist. Ich bin aber mal neugierig. Ich nehme an, dass es sich um ein Programm handelt, welches nicht Excel ist, aus dem die Quelldaten exportiert werden. Erscheinen die Quelldateien dann einfach so als Excel-Datei auf dem Bildschirm?, oder können sie beim exportieren schon einem aufnehmenden Pfad zugeordnet werden und mit Namen versehen werden? Vielleicht kann man durch ein kleines Zusatzprogramm die Dateien mit einem "Knopfdruck" abspeichern.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
30.10.2018 19:07:46
Andreas
Hallo Peter,
Ja. Das ist korrekt. Es handelt sich nicht um Excel, sondern um Lexware. Sobald der Export angeklickt wird öffnet sich Excel und es wird eine Xlsm Datei (inkl. Makros Lexwareseitig) erstellt. Der Exportnahme wird von Lexware vorgegeben. Natürlich speichere ich die Datei nach Exportabschluss unter dem richtigen Namen. Ich wüsste jetzt nicht wie man da einen Namen per „Knopfdruck“ einfügt. Das wäre eine Sache für die Herber-Experten :o)
Gruß
Andreas
AW: Daten aus anderer Mappe auslesen - Nr. 3
01.11.2018 00:31:14
Peter
Hallo Andreas,
Dein Thread läuft möglicherweise schon in Kürze aus. Bitte dann einen neuen Thread eröffnen.
Ich bin nun fast soweit mit dem Programm "per Knopfdruck speichern". Werde noch ein wenig testen und sende Dir die Dateien heute im Laufe des Tages.
Es waren sehr große Schwierigkeiten zu überwinden. Excel führt einem an der Nase herum, wenn es darum geht, die Reihenfolge mehrer nacheinander in den Hauptspeicher geladener Dateien festzustellen. Mal ist die Reihenfolge so und dann mal wieder anders - obwohl der Ladevorgang immer gleich abläuft.
Bis demnächst. M.f.G. Kloßek
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
01.11.2018 08:55:38
Peter
Hallo Andreas,
nach ausgiebigen Tests habe ich jetzt keinen Fehler mehr feststellen können. Hiermit sende ich Dir die Dateien.
Diese Datei bitte speichern unter "Speicherprogramm1.xlsm"
https://www.herber.de/bbs/user/125039.xlsm
Die folgende Datei bitte speichern unter "Ersatzmappe.xlsx"
https://www.herber.de/bbs/user/125040.xlsx
Die Arbeitsmappe "Speicherprogramm1.xlsm" bitte aufrufen und in den gelben Feldern Deine Angaben eintragen. Danach müssen die Makros an den benannten Stellen auf Deine Bedürfnisse geändert werden. Dies betrifft den Makro10 im Modul 1. Außerdem muss das automatische Öffnen aktiviert und geändert werden. Klicke hierzu bitte bei den Makros auf "Diese Arbeitsmappe". Die Scharfstellung erfolgt durch das Entfernen der Hochkommas (') am Anfang der Befehle. Ich empfehle, vor der Aktivierung die Datei zu speichern unter "Speicherprogramm1.xlsm".
Wenn Du alle Änderungen und die Aktivierung durchgeführt hast, bitte das Speicherprogramm abspeichern unter "Speicherprogramm.xlsm" (ohne die 1). Achtung, auf diese Datei kannst Du später nicht mehr zugreifen! Daher das Duplikat unter "Speicherprogramm1.xlsm"
Für die automatische Speicherung gehe bitte in dieser Reihenfolge vor:
1) Alle Anwendungen schließen, der Windows-Explorer kann geöffnet bleiben.
2) Öffne die Lexware-Datei (Export)
3) Rufe die Datei "Speicherprogramm.xlsm" auf
Gleichzeitig wird die "Ersatzmappe.xlsx" aufgerufen. In diese leere Mappe wird der Inhalt der Lexwaremappe kopiert und dann mit dem eingetragenen Datei-Namensstamm plus Monat/Jahr gespeichert. Zum Schluss wird das Auswertungstool, welches Du erfolgreich getestet hast, geladen und die anderen Dateien geschlossen. Sollte die Lexware-Datei fehlen oder sollten mehr als 3 Dateien im Hauptspeicher stehen, kommt eine Fehlermeldung und das Programm wird beendet. Nach dem Laden der Lexware-Datei genügt also ein Doppelklick im Internet-Explorer auf die Datei "Speicherprogramm.xlsm".
Mit freundlichem Gruß
Peter Kloßek
Anzeige
AW: Daten aus anderer Mappe auslesen - Nr. 3
02.11.2018 10:18:52
Andreas
Hallo Peter,
vielen vielen Dank für deine großen Bemühungen mir zu helfen.
Ich habe die letzten Tage meinen Code nochmal überarbeitet und
jetzt die für mich perfekte Lösung gefunden.
Gruß
Andreas

359 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige