Einen Wert aus 200 Datein heraus kopieren in eine Datei
Hallo , da mir das letzte mal supe klasse in diesem Forum geholfen wurde bzw. Gestern von coros/oliver dachte ich mir versuche ich doch nochmal eine gleich schwierigere Frage zustellen, ich tue das ganz vorsichtig.
Also ich habe etwa 200 Datein . In Jeder Datei findet eine Rechnung statt. Das end Ergenis soll von einem vba code ausgelesen werden und in eine Datei gesammelt werden , so das ich eine prozentuale Ansicht erstellen kann. Das endergebnis befindet sich immer in der Selben Spalte und Zeile
Das mit der Ansicht ist kein Problem, nur wie ich die ganzen Werte in die eine Datei reinbekomme, das stellt sich für mich wieder als eine Herausforderung da die so groß ist wie der Mounteverest.
Ich hoffe das wieder ein Internetengel geflogen kommt!
Schönen Gruß Hermann
Antwort schreiben
Antwort 1 von malSchauen vom 29.09.2021, 15:05 Options
Hi,
Dazu dann auch gleich ein paar Gegenfragen:
- Liegen diese ca. 200 Quell-Dateien alle in einem Verzeichnis?
-- Wenn Ja, gibt es in diesem Verzeichnis andere Exceldateien?
--- Wenn Ja, Worin unterscheiden sich diese dann von den QuellDateien?
- Sind diese Quelldateien alle identisch aufgebaut? QuellZelle ist bei allen gleich, wie Du schreibst. Sind es die Tabellen-Namen auch? Wie lauten diese (in welcher Tabelle liegt die ErgebnisZelle?)?
- Soll die Zieldatei (welche die ermittelten Werte aufnimmt) in das gleiche Verzeichnis wie die Quelldateien gespeichert werden?
Bye
malSchauen
Antwort 2 von Hermann57 vom 29.09.2021, 15:14 Options
Hi , danke für die schnell Antwort. Ein Internetengel!
Also :
- Alle Datein sind in einem Ordner
- Alle Sind gleich aufgebaut
- Jede Datei ist mit einer nummer versehen z.b 2326.xls ,2327.xls ,usw. bis 2526
Das Ergebnis liegt in der Spalte B40 - In jeder Datei.
Und dieses Ergebnis soll in den Ordner Gesamt.xls nur von jeder Datei. untereinander gespeichert werden.
Herzlichen Gruß Hermann
Antwort 3 von coros vom 29.09.2021, 15:15 Options
Hallo Hermann,
nachfolgendes Makro kopiert Dir aus allen Dateien in einem fest vorgegebenen Verzeichnis den Wert aus A1 in die aktuelle Datei in Spalte A.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.Option Explicit
Const strPath = "C:\Eigene Dateien"
Sub Pfade_ermitteln()
Dim Datei$
Dim lngrow As Long
Datei = Dir(strPath & "\*.xls")
Do While Datei <> ""
If Right(Datei, 4) = ".xls" Then
GetObject (strPath & "\" & Datei)
lngrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(lngrow, 1) = Workbooks(Datei).Sheets(1).Range("A1")
Workbooks(Datei).Close
End If
Datei = Dir()
Loop
End Sub
Du musst in der Zeile
Const strPath = "C:\Eigene Dateien"
noch den Pfad zwischen den Anführungszeichen anpassen.
Mehr ist leider bei den wagen Angaben nicht drin.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von coros vom 29.09.2021, 15:17 Options
Hallo,
ich nochmal. Habe die ANtwort von hermann zu spät gesehen. Ändere in meinem Makro in der Zeile
ActiveSheet.Cells(lngrow, 1) = Workbooks(Datei).Sheets(1).Range("A1")
die Zellbezeichnung "A1" in "B40". Dann sollte es funktionieren.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Hermann57 vom 29.09.2021, 15:41 Options
Wow , ich bin wieder mal baFF - Sprachlos.
Ich kann nichts anderes sagen als herzlichen Dank.
Oliver ich danke dir wie auch schon gestern !
Und ich hoffe , dass du bist mir nicht sauer bist, das ich schon wieder so eine schwere Frage gestellt habe. Du hast einem kleinem Mann sehr geholfen.
Ich danke Dir herzlich!
Bis bald vill.
ich hoffe du bist mir nicht böse wenn ich wieder eine Fragestelle.*duck*
Aber erstmals sind alle meine Sorgen weg. Danke !
Ein Internetengel, ich kann es nur immer wieder sagen !
Schönen Abend
Hermann
Antwort 6 von coros vom 29.09.2021, 15:45 OptionsLösung
Hallo Hermann,
warum entschuldigst Du Dich bei mir? Dafür ist ein Forum da, um Fragen zu stellen und dabei ist es egal, ob diese schwierig oder leicht zu lösen sind.
Stelle ruhig weiter Deine Fragen hier, und böse bin ich bestimmt nicht, wenn Du Fragen stellst.
Danke auch für die Rückmeldung.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.