Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
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

unlösbar? Dateien untereinander zusammenfassen

unlösbar? Dateien untereinander zusammenfassen
19.03.2016 10:11:24
parza
Hallo Fachleute,
ich vermute, dass mein Problem zwar einfach klingt, aber nicht wirklich zu lösen ist; zumindest habe ich im Internet noch keine entsprechende Lösungsmöglichkeit gefunden.
Zur Ausgangslage: Eine große Menge an Dateien aus mehreren Tabellenblättern bestehend, soll in eine Datei mit den entsprechenden Tabellenblättern zusammengefasst werden. D.h. mit copy/paste erklärt. Die Daten von Datei 2 werden unter die Daten der Datei 1 kopier und eingefügt. Die Daten von Datei 3 stehen unter 2, von 4 unter 3 usw.
Das wäre die erste Herausforderung, die zweite und dritte sollte sein, dass sich zwischen den einzelnen Datensätzen eine Leerzeile befindet und in einer ersten Spalte sich der Dateiname befindet, damit erkennbar, von wem die Ursprungsdaten stammen.
Falls es eine Lösung gibt, wäre super; sonst gebt mir eine kurze Rückmeldung, dass dies nicht machbar ist.
In der Anlage ist eine leere Beispieldatei; die Datei (mit noch ein paar Registern mehr) gibt es ausgefüllt von verschiedenen Personen ca. 100 fach.
https://www.herber.de/bbs/user/104462.xls
Vielen Dank
parza

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
das Zusammenfassen von...
19.03.2016 10:17:46
Oberschlumpf
...leeren! Bsp-Datensätzen ergibt eine - genau so leere - Übersichtstabelle^^
Hi
Wieso zeigst du uns denn die Datei nicht mal mit - nicht - leeren Bsp-Datensätzen?
Ciao
Thorsten

AW: das Zusammenfassen von...
19.03.2016 10:58:19
parza
Hallo Torsten,
dies hat im Wesentlichen zwei Gründe: zum einen aus Datenschutzgründen (die Originalinhalte darf ich nicht zeigen), zum anderen der Inhalt ist unrelevant (der besteht entweder aus Zahlen oder Text, kann im Einzelfall (= Fehalnzeige) auch leer sein.
Eine vergleichbare Abfrage mit ähnlichem Dateiaufbau hatte ich letzte Woche: In wie vielen Schulklassen arbeitet ein Therapeut im Unterricht mit: 120 war Fehlanzeige also leer, 6 mal war eine Angabe.
Bei der nächsten Abfrage könnte es genau umgekehrt sein.
Ich hoffe, dies hilft weiter.

Anzeige
es gibt auch Beispieldaten...
20.03.2016 18:38:10
Michael
Hi zusammen,
wir wollen ja keine echten Daten...
Aber egal, wegen der Überschrift bzw. der enthaltenen Summen läßt sich das Ganze auch ohne zusätzliche Daten lösen: https://www.herber.de/bbs/user/104481.xls
Ich habe ein Blatt "Übersicht" eingefügt, und das Makro liest alle Blätter (die nicht "Übersicht" heißen) dorthin ein.
Man kann das ohne großen Aufwand auf diverse Datein aufbohren, aber dazu müßte man wissen, wie die heißen, wo sie stehen usw. - falls das nicht auch unter Datenschutz fällt.
Ich habe jedenfalls keine Lust, das zu programmieren, da findet sich in den
https://www.herber.de/xlfaq/index.html
genug, aber vielleicht erbarmt sich ja Thorsten...
Schöne Grüße,
Michael

Anzeige
AW: es gibt auch Beispieldaten...
21.03.2016 18:00:10
parza
Hallo Michael,
vielen Dank für deine Antwort und auch deine Mühe. Ich verstehe, dass du bei diesem Thema nicht weiter programmieren willst, da es so wie du es gelöst hast, tatsächlich Lösungen gibt.
Mein Problemm ist aber anders, wahrscheinlich habe ich es schlecht dargestellt.
Es sollen NICHT alle Registerkarten einer Datei in einer einzigen Registerkarte zusammengefasst werden und untereinander stehen.
Sondern: Von mehreren/vielen Dateien (z.B. 100 Dateien) immer die gleiche Registerkarte. In meiner Beispieldatei also 100 mal untereinander "1.S" und 100 mal "2.VS" usw.
Das Ziel ist dann, alles was in der jeweiligen Spalte untereinander steht zu addieren. Anhand dessen diese sehe ich dann, was der einzelne beantragt hat und gleichzeitig wie viel ich insgesamt benötige.Die ausführliche Variante wäre eben, jede einzelene Datei zu öffnen, die jeweilige Registerkarte zu kopieren und eintereinander einzufügen.
Ich vermute, dass dies zu schwer zu programmieren ist; daher habe ich "unlösbar?" als Titel gewählt.
Einen schönen Abend und nochmals vielen Dank
parza

Anzeige
überschnitten....
21.03.2016 19:50:23
Michael
Hi parza,
ist ja, wie gesagt, kein "ernsthaftes" Problem für Profis, nur bleibst Du uns immer noch die fett nachgefragten Infos (20.03.2016 18:38:10) schuldig...
Sobald Du die geliefert hast, sehen wir weiter,
schöne Grüße,
Michael

AW: überschnitten....
22.03.2016 17:15:57
parza
Hi Michael,
morgen liefere ich ein paar Beispieldateien - heute schaffe ich es wegen einer Tagung, die noch vorbereitet werden muss, nicht mehr.
Schöne Grüße,
parza

nochmal zu Dateien...
22.03.2016 14:58:51
Michael
Hi zusammen,
zur Programmierung des Imports müssen wir keine "echten" Dateinamen und -Pfade wissen (das könnte ja tatsächlich datenschutzmäßig bedenklich sein), aber zumindest ausreichende Angaben wie z.B.:
- alle zu importierenden Datein (und nur die) befinden sich in EINEM bestimmten Ordner
- alle zu importierenden Datein befinden sich in verschiedenen Unterordnern eines bestimmten Pfades; sie sind dadurch zu unterscheiden, daß ... z.B. die ersten drei Buchstaben des Namens "Imp" lauten oder der Name ein bestimmtes Datum enthält oder oder...
- es liegt Dir bereits eine fertige Liste der Datein vor, incl. Pfadangabe, z.B.:
C:\Daten\Import\ErsteDatei.xlsx
C:\Daten\nochEinImport\ZweiteDatei.xlsx
usw.
IRGENDEINE Angabe wird definitiv benötigt, weil der engagierte Anwender 1000 Datein hat und man dem Makro beibringen muß, welche 100 dieser 1000 zu importieren sind.
Schöne Grüße,
Michael

Anzeige
AW: nochmal zu Dateien...
22.03.2016 17:29:10
parza
Nachtrag:
- die Dateien werden mir ausgefüllt zugesandt; ich sammele diese und lege sie in einem klar von mir definierten Ordner ab; es werden immer ALLE Dateien dieses Ordners zusammengefasst und ausgewertet
- die Dateien haben alle den gleichen Dateinamen; sie unterscheiden sich nur durch die ersten vier Zeichen = Zahlen. Bsp. für einen Dateinamen: xxxx_Therapiestunden15_16,wobei xxxx durch die vierstellige Schulnummer ersetzt wird, also 1111_Therapiestunden15_16
- Problem: Ich habe wöchentlich zwei bis drei solcher Abfragen und Zusammenfassungen, wobei sich die Abfragen unterscheiden: Machmal ist es nur eine Registerkarte, bisweilen wie in der Beispieldatei mehrere. Auch die Zahl der Zeilen und Spalten ist nicht immer gleich.
Daher "unlösbar"? und doch copy/paste?
Trotzdem vielen Dank, parza

Anzeige
okay...
22.03.2016 17:45:55
Michael
Hallo Parza,
na, das ist doch mal ein Schritt in die richtige Richtung: daß alle Datein in EINEM Ordner liegen. DANN ist es ja auch schon egal, wie sie heißen... Man muß nur alle nehmen.
Die heißen .xlsx, oder sind auch .xls dabei?
Und: wie die einzelnen Blätter strukturiert sind (bzw., ob sich die Struktur von Abfrage zu Abfrage ändert), ist relativ wurscht: es sollte nur so sein, daß die Struktur INNERHALB einer konkreten Abfrage in jedem jeweiligen, verwendeten Blatt identisch ist: sonst kannst ja schlecht automatisch summieren...
Da stellt sich sowieso die Frage, WIE summiert werden könnte: wenn Du ganze Spalten summierst, hast Du ja immer den doppelten Betrag, derweil die Einzelbeträg PLUS die Summe des jeweiligen "Formulars" gerechneten werden. Wenn Du damit leben kannst, isses ja ok.
Vielleicht wäre es gar nicht schlecht, mal kurz zu telefonieren: da lassen sich solche Details in ein paar Minuten klären, ohne daß sich der Thread häppchenweise in die Länge zieht.
Meine email-Adresse findest Du hier:
https://www.herber.de/cgi-bin/profile/call_profile.pl?user=1857094
Für heute mache ich allerdings Feierabend.
Schöne Grüße,
Michael

Anzeige
AW: okay...
23.03.2016 17:30:25
parza
Hi Michael,
anbei sind zwei Beispieldateien und eine Zusammenfassung, so wie es am Schluss aussehen soll (wobei ich im Beispiel 5 Dateien zusammengefasst habe, aber nur 0001 und 0002 hochgeladen habe).
In der blau-braunen Tabelle (Zeile 1 bis 10) werden die darunter liegenden Zahlen jeder Spalte summiert.
https://www.herber.de/bbs/user/104574.xls
https://www.herber.de/bbs/user/104575.xls
https://www.herber.de/bbs/user/104576.xls
Dateiformat ist aktuell meist noch *.xls
Ich hoffe, dies hilft dir weiter, möchte aber ungern deine Osterfeiertage mit einer Programmierung für mich blockieren.
Einen schönen Feierabend, parza

Anzeige
AW: okay...
24.03.2016 14:23:40
Michael
Hi parza,
ich habe mir die Datein angesehen: die =SUMMEWENN löst das Problem mit der Summierung ja ganz geschickt; die Zahlen rechts neben der importierten Tabelle (also Spalte D) kann man ohne Aufwand mit VBA erzeugen - das macht es überflüssig, sie in den Import-Datein in Spalte AV zu platzieren.
Im Gegenteil: der Import könnte flüssiger gehen, wenn wirklich nur die reinen Tabellendaten (also in dem Fall B-C) kopiert werden.
In Spalte A steht 0001, 0002 usw., sind das tatsächlich die Tabellennamen (0001.xls)?
Ach so: die Maschine, auf der Du den Import durchführst, hat aber ein neueres Excel als 2003 (=xls), ja?
So, einige Zeit später: zunächst bin ich einigermaßen verärgert, weil die Datein allesamt irgendwelche Workbook_Open-Ereignisse enthalten, die an MEINEM Excel herumpfuschen!!! Merk Dir bitte für die Zukunft, daß so etwas VOR dem Upload in ein Forum RAUS MUSS!!! (als Benutzer Deiner Datein würde ich mich auch "bedanken")
Deshalb höre ich jetzt auch bei diesem Stand auf zu programmieren...
Userbild
Mit dem oberen Button wählst Du den Pfad (bzw. eine Datei, die dort liegt) aus, und mit dem zweiten Button werden alle vorhandenen Datein eingelesen - samt Anzahl und Namen der Blätter.
Zu Testzwecken habe ich mal in 0001.xls ein weiteres Blatt eingefügt, das dann die Ausgabe "## weitere" erzeugt - wenn die Blattnamen oder die Anzahl der Blätter nicht mit der Master-Datei (gerechnet ohne das Master-Blatt) übereinstimmen, wird das durch eine bedingte Formatierung rot dargestellt.
Es mag zusätzliche Zeit kosten, die Plausibilitätsprüfung nicht direkt beim Einlesen vorzunehmen, andererseits dauert Letzteres ohnehin etwas länger, so daß ich es so herum für sinnvoller halte: dann kann man evtl. markierte Datein mal vor dem Import händisch überprüfen und gängig machen - man weiß ja nie, was die Anwender so treiben...
Wegen meiner Verärgerung lade ich die Datei jetzt nicht hoch; ohnehin wird der Thread in Kürze nicht mehr im Forum angezeigt, so daß ich erst weitermache, wenn ich eine mail von Dir habe.
Schöne Feiertage und Grüße,
Michael

Anzeige
nur mal so...
24.03.2016 15:30:49
Oberschlumpf
Hi Michael
So, einige Zeit später: zunächst bin ich einigermaßen verärgert, weil die Datein allesamt irgendwelche Workbook_Open-Ereignisse enthalten,
Mein Tipp an dich:
1. Such nicht nur die Schuld bei Anderen
2. Ich schau mir immer den VBA-Level an
für den hier Fragenden gilt: Level:Basiskenntnisse in Excel
Daher kann ich fast davon ausgehen, dass Derjenige vielleicht fast immer weiß, wo VBA-Code hingehört...durchaus auch ins WB-Open-Ereignis.
Aber ich unterstelle Anfängern (is nich böse gemeint), dass sie nicht weiterdenken, als nur bis zu ihrer Datei...dass sie nicht überlegen, dass der eingetragene Code auch auf jedem anderen PC mit aktivierten Makros ausgeführt wird
3. weil 2., lass ich nach dem ersten Start einer hier, oder wo auch immer, gezeigten Bsp-Datei die Makroausführung erst mal DEaktiviert und schaue mir den Code an.
ICH entferne oder deaktiviere dann jede Codezeile, die mein Excel "zerschießen" könnte, weil ICH bin für alles verantwortlich, was auf - meinem - PC passiert.
4. Außerdem würd ich es nicht immer hilfreich fehlen, wenn irgdein Codeteil fehlt.
Denn oft sind ja IM CODE die Fehler, die den Fragenden zu schaffen machen.
Ciao
Thorsten

Anzeige
ok, danke,
24.03.2016 16:46:01
Michael
Thorsten,
in der Tat habe ich mich (auch) über mich selbst geärgert, derweil ich "normalerweise immer" erst mal sehe, ob da was ist, aber ausgerechnet dieses Mal nicht.
Abgesehen davon sind die Beispieldatein bruchstückhaft, weil zwar das Workbook_Open da ist, nicht jedoch der korrespondierende Code... Sei's drum.
Also gut, mein Ärger legt sich denn - danke für die Hinweise.
@parza: Kommando zurück, ich bitte um Entschuldigung.
Anbei die Datei bis dato: https://www.herber.de/bbs/user/104599.xls
(den Code in "DieseArbeitsmappe" habe ich auskommentiert)
Schöne Grüße,
Michael

danke und bitte kein Expertenstreit
24.03.2016 19:03:53
parza
Hallo Michael und die anderen Fachleute,
erst einmal nochmals herzlichen Dank. Es ist ein suuuuper hilfsbereites und auch freundliches Forum hier (dies ist nicht überall so).
Zum Ärgernis bzw. den Unklarheiten:
Ich habe keine Ahnung von Programmierung, vba u.a.. Allerdings ist die Originaldatei wahrscheinlich so alt wie das *xls Format und wurde immer Laufe der Zeit immer wieder verändert. Allerdings nicht von mir, sondern ich erhalte eine Originaldatei von einer übergeordenten Behörde, versende diese dann an über 100 andere Einrichtungen und diese senden sie mir ausgefüllt zurück. Keine Ahnung, was an den Dateien alles herumgedoktert wird/wurde. Trotzdem Entschuldigung.
Ich fasse anschließend diese gesamten Dateien wieder zusammen (hierfür ist derProgrammierungswunsch gedacht), werte sie aus, um sie dann wieder als eine Datei an die obere Behörde zurückzusenden.
0001 ist nicht der Name des Tabellenblatts, sondern die Kennzahl der zurücksendenden Behörde.
Ich persönlich benutze Office 2010, aber die Stellen, die die Dateien ausfüllen in der Regel noch Office 2003 und z.T. Libre Office. Daher *.xls.
Spalte A ist wichtig, um zu erkennen, von wem die Datei ist und ohne Spalte D funktioniert die Summewenn nicht.
Zum genauen Testen komme ich leider erst nach den Feiertagen, wenn ich wieder am Arbeitsplatz bin.

AW: danke und bitte kein Expertenstreit
25.03.2016 10:56:36
Hajo_Zi
warum offen?

jetzt isses zu
26.03.2016 14:12:57
Michael
Hallo Parza,
jetzt wird der Thread nicht mehr im Forum angezeigt.
Also: die eine halbe Antwort war meine erste Datei, die Blätter einliest, die zweite halbe Antwort die zuletzt hochgeladene, die das Verzeichnis ausliest und die Plausibilitätsprüfung macht.
Beides zusammengeworfen ergibt im Prinzip die Lösung, die Du benötigst.
Weil das Ding nicht mehr im Forum ist, bitte email.
Schöne Feiertage,
Michael

Nachtrag - Rückmeldung?
21.03.2016 18:04:25
Michael
Hi zusammen,
da war noch ein Fehler drin - a) das "nix" wurde nicht ausgewertet und b) die Abfrage auf c is nothing hat gefehlt.
So paßt es besser:
Option Explicit
Function bereichSuchen(Blatt As Worksheet) As String
Dim ReUn$, LiOb$
Dim c As Range
Set c = Blatt.Cells.Find("*", , , , , xlPrevious)
'Stop
If c Is Nothing Then bereichSuchen = "nix": Exit Function
ReUn = c.Address
Set c = Blatt.Cells.FindNext(c)
LiOb = c.Address
If ReUn = LiOb Then bereichSuchen = "nix" Else bereichSuchen = LiOb & ":" & ReUn
End Function
Sub testen()
Dim sh As Worksheet, ubersicht As Worksheet
Dim bereichAdresse$
Dim zeilen&, nextZ&
Set ubersicht = Sheets("Übersicht")
ubersicht.Cells.Clear
nextZ = 6
For Each sh In Worksheets
If sh.Name  "Übersicht" Then
ubersicht.Range("A" & nextZ - 1) = sh.Name
bereichAdresse = bereichSuchen(sh)
If bereichAdresse  "nix" Then
MsgBox "Blatt: >" & sh.Name & "> Bereich: > " & bereichAdresse & "" & sh.Name & "> Bereich: 'nix'"
ubersicht.Range("A" & nextZ) = "nix"
nextZ = nextZ + 2
End If
End If
Next
End Sub
Gruß,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige