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

Konsolidierung & Dropdowns

Konsolidierung & Dropdowns
12.09.2022 03:32:04
Kisska
Hallo zusammen,
ich habe einen VBA-Code gefunden, mit den man mehrere Dateien mit allen darin enthaltenen Tabellenblättern konsolidiert.
Leider werden die Dropdowns nicht übernommen. Wenn man auf die Datenüberprüfung geht, dann sieht man, dass der Bezug gelöscht wurde:
"='\\Netzwerkname\[Dateiname.xlsx]Daten'!#BEZUG!".
Ist es möglich, die Dropdowns zu behalten? Es wäre gut, wenn der Bezug direkt so heißen würde: "=Daten!XY"
Zur Info: Der Aufbau aller Dateien ist gleich, es gibt insgesamt drei Tabellenblätter, im ersten Blatt "Ergebnis" stehen die Dropdowns, im zweiten Blatt "Daten" befinden sich die Listen für die Dropdowns und im dritten Blatt stehen Hinweise. Die Tabellenblätter "Daten" und "Hinweise" sind in allen Dateien inhaltsgleich. Eigentlich brauche ich bei der Konsolidierung diese nur 1 Mal. Daher die zweite Frage: Wenn die Übernahme von Dropdowns doch möglich ist, ist es zudem möglich, dass das Tabellenblatt "Daten" mit den Listen für die Dropdowns und das Tabellenblatt "Hinweise" nur ein Mal in der konsolidierten Datei stehen?
Hier ist der Code:

Sub Dateien_zusammenfuehren()
'Führt alle Tabellenblätter der ausgewählten Excel-Dateien in dieser Arbeitsmappe zusammen
Dim wbQuelle As Workbook
Dim sh As Worksheet
Dim arrdateien As Variant
Dim cntDatei As Long
'Screenupdating deaktivieren
Application.ScreenUpdating = False
'Benutzer Dateien auswählen lassen
arrdateien = Application.GetOpenFilename(filefilter:="Excel-Dateien (*.xlsx),*.xlsx", MultiSelect:=True)
'Wurde mindestens eine Datei ausgewählt?
If IsArray(arrdateien) Then
'Schleife über alle ausgewählten Dateien
For cntDatei = 1 To UBound(arrdateien)
'Aktuelle Arbeitsmappe öffnen
Set wbQuelle = Workbooks.Open(Filename:=arrdateien(cntDatei), UpdateLinks:=False, ReadOnly:=True)
'Schleife über alle Tabellenblätter
For Each sh In wbQuelle.Worksheets
'Aktuelles Tabellenblatt kopieren
sh.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
Next sh
'Aktuelle Arbeitsmappe schließen
wbQuelle.Close savechanges:=False
Next cntDatei
End If
'Screenupdating aktivieren
Application.ScreenUpdating = True
'Bereitgestellt von VBATrainer: www.vbatrainer.de
End Sub
VG
Kisska

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konsolidierung & Dropdowns
12.09.2022 04:35:45
Oberschlumpf
Hi,
kannst du bitte per Upload Bsp-Dateien zeigen von...
...der Hauptdatei mit Code, in die die einzelnen Dateien konsolidiert werden sollen
...2 oder 3 der Einzeldateien
mit jeweils genügend Bsp-Daten in den richtigen Zeilen/Spalten
Hatte gerad versucht, ohne testen, einfach "aus Bauch raus" Code für dich zu erstellen, stellte aber fest, dass das Ganze ohne Testen zumindest für mich zu viel wird.
Ciao
Thorsten
AW: Konsolidierung & Dropdowns
12.09.2022 09:34:32
Kisska
Hallo Thorsten,
schön, dass du schreibst. Du hast mir schon mal bei der Frage mit der Konsolidierung geholfen. Damals wollte ich nur jeweils das erste Blatt von den Quell-Dateien konsolidiert haben. Im Nachgang brauche ich aber doch alle, nur die Tabellenblätter "Daten" und "Hinweise" ein Mal.
Hier der alter Beitrag:
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1890008
Und hier die Beispiel-Daten:
https://www.herber.de/bbs/user/155117.xlsm
VG
Kisska
Anzeige
AW: Konsolidierung & Dropdowns
12.09.2022 09:42:27
Oberschlumpf
sorry, geht es schon wieder los?
ich mag dieses FrageAntwortPingPong nicht
und bitte WO sind die DATENdateien?
AW: Konsolidierung & Dropdowns
12.09.2022 09:48:25
Kisska
Sorry, hab die falsche Datei beim Hochladen ausgewählt.
Hier eine Zip-Datei mit 3 Quell-Dateien und einer Zieldatei:
https://www.herber.de/bbs/user/155118.zip
VG
Kisska
AW: Konsolidierung & Dropdowns
13.09.2022 08:04:08
Oberschlumpf
Hi,
hier, probier mal
https://www.herber.de/bbs/user/155139.zip
ZIP-Datei enthält
- Zieldatei (nun auch mit meinem Code)
- deine Quelldatei(en)1 - 3
erst entpacken, dann Zieldatei starten
Wunder dich nich...
...Zieldatei enthält 1 leeres Blatt mit nun auch dem Namen "Ergebnis"
...du musst das Makro "sbCopySheets" starten, welches sich im von mir hinzugefügten Modul "Oberschlumpf" befindet
...nach Start wirst du, wie gewohnt, aufgefordert, 1 oder mehrere Quelldatei(en) zum Öffnen auszuwählen
...nach Auswahl werden nacheinander...
- alle Dateien geöffnet
- nur mit erster geöffneten Datei werden die Blätter "Daten" + "Hinweis" kopiert u eingefügt
- nur mit erster geöffneten Datei werden alle Zellwerte aus "Ergebnis" übernommen
-- ab zweiter geöffneten Datei werden nur noch die Datenzeilen aus "Ergebnis" übernommen
- alle Datenzeilen aus allen geöffneten Dateien werden in Zieldatei in nur ein Blatt "Ergebnis" (das zu Beginn leere Blatt) untereinander aufgelistet
- Dulikate (mind. 1 DatenZEILE ist identisch mit anderer Datenzeile) werden gelöscht
- Datengültigkeitslisten werden nicht mehr in geöffneten Dateien kopiert und in Zieldatei eingefügt, sondern sie werden direkt mit VBA erstellt
Beachte auch die ganz vielen + hofftl hilfreichen Kommentare im Code.
Hilfts?
Ciao
Thorsten
Anzeige
funktioniert gut!
14.09.2022 23:23:41
Kisska
Hallo Thorsten,
bitte entschuldige meine späte Antwort, konnte leider nicht eher zurück schreiben.
Und herzlichen Dank für deine Unterstützung!
Ich habe deinen Code getestet und es funktioniert wunderbar mit den vereinfachten Beispieldaten.
Zwei Fragen dazu:
1) Ich würde gerne im Blatt Ergebnis das Layout schon mal vorbereiten, die Zeilen 1 bis 6 sind mit verschiedenen Überschriften versehen, die Filter werden in der Zeile 6 angezeigt. Die Daten aus Quelldateien beginnen auch ab ab Zeile 7 und Spalte B an.
Wie müsste ich den Code ändern, damit nur die Daten ab B7 übernommen werden?
2) Könntest du mir sagen, wo ich im Code steht, ab wann die Zeilen kopiert werden bzw. sagen, wie man definiert, dass mind. in Spalte B etwas stehen sollte und als Alternative mind. in Spalten B bis E. Ich bin mir noch nicht sicher, ob nur Spalte B für mich als Kriterium ausreicht oder doch mehr befüllte Spalten, daher die Frage mit der Alternative.
VG
Kisska
Anzeige
AW: funktioniert gut!
15.09.2022 10:43:45
Oberschlumpf
Moin,
zu deinem 1)
Wieso hast du nicht schon in deiner Bsp-Datei genau das gewünschte (im Original schon vorhandene?) Layout gezeigt?
Da hätt ich/wir doch - sofort - gewusst, dass im Blatt Ergebnis Zeilen 1-6 mit Überschriften "belegt" sind und die Daten erst ab Zeile 7 beginnen.
Außerdem wäre dann auch schon bekannt gewesen, dass die Überschriften aus der zuerst geöffneten Quelldatei - nicht - mit übernommen werden sollen.
von mir noch nicht geändertes Problem:
Zitat: "Die Daten aus Quelldateien beginnen auch ab ab Zeile 7 und Spalte B an."
a) bitte vor dem Absenden Korrekturlesen - ich musste mir das mehrmals durchlesen, bevor ich verstand, dass du da mehrere Schreibfehler reingehauen hast.
(auch das Verfassen von Antworten vom Handy erfordert genau so eine Sorgfalt)
b) ich versteh das nun so, dass die Datenzeilen in den Quelldateien1-3 genau so erst ab Zeile 7 beginnen - bin mir da aber nicht sicher - kann ja auch sein, dass in Quelldatei(en) alles in Zeile 2 beginnt, in Zieldatei aber erst ab Zeile 7 übernommen werden soll.
Wieso hast du die Beispiele für Quellen nicht auch so gezeigt, dass Datenzeilen ab Zeile 7 beginnen - wenn meine diesbzgl. Vermutung stimmt?
Jedenfalls hab ich nun deine Quelldateien nicht auch noch angepasst, sondern hab diese weiter so, wie von dir geliefert, verwendet.
Hier nun die Zieldatei mit meinem neuen Code:
https://www.herber.de/bbs/user/155186.xlsm
- in Blatt Ergebnis von Zieldatei sind Zeilen 1-6 mit Überschriften belegt
- in Zeile 6 hab ich Autofilter aktiviert (dass du Autofilter verwendest, lese ich jetzt auch erst das erste Mal)
- mein Code liest aus den ausgewählten Quelldateien jetzt nur noch die Datenzeilen aus und fügt diese, beginnend ab Zeile 7, in Ergebnis ein
Passt das jetzt so?
Wenn nein, zeig - alle - Bsp-Dateien mit dem - richtigen - Layout.
Ciao
Thorsten
Anzeige
AW: funktioniert gut!
16.09.2022 13:41:48
Kisska
Hallo Thorsten,
ich wollte das Beispiel nicht unnötig komplizierter machen und dachte, dass ich das auf die Originaldaten einfach übertragen könnte, habe mich wohl geirrt.
Der neue Code bringt leider kein gewünschtes Ergebnis. Von den Daten werden warum auch immer nur die ersten zwei Zeilen ab A1 einkopiert und nicht ab B7.
Meine Quelldaten sind bis zur Spalte S gefüllt, übernommen werden jedoch nur die Daten bis D.
Die Überschriften 1 bis 6 sind sowohl in der Zieldatei als auch in den Quelldateien gleich. Bei den Quelledateien ist das erste Tabellenblatt "Ergebnis" und hier in der Zieldatei auch, vielleicht sollte es anders heißen, z.B. Konsolidierung, aber das wird wahrscheinlich nicht der Grund sein, warum nicht alle Zeilen ab B7 übernommen werden.
Falls du keine Lust mehr hast, dich mit der Frage auseinanderzusetzen, verstehe ich das und mache die Konsolidierung manuell :-)
VG
Kisska
Anzeige
AW: funktioniert gut!
16.09.2022 14:48:36
Oberschlumpf
Hi,
zeig doch bitte...
...Zieldatei mit Bsp-Daten in genau den Zellen, wo sie auch im Original sind - inklu Überschrift und sonst allem, was erforderlich is
...Quelldatei1 bis 3 mit Bsp-Daten in genau den Zellen, wo sie auch im Original sind - inklu Überschrift und sonst allem, was erforderlich is
VBA is echt einfach - ok ok :-) ich kann das ja behaupten...was ich sagen will: der Code, den ich für dich erstellt hab, is echt nicht kompliziert.
Der Code macht automatisiert einfach nur das, was du sonst per Hand machst.
Ciao
Thorsten
gibbs denn noch ne Antwort?! owT
14.09.2022 08:39:52
Oberschlumpf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige