Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mehrere Exceldateien zu einer Excel Datei zusammenfassen - extended

Mitglied: bolshi

bolshi (Level 1) - Jetzt verbinden

22.05.2008, aktualisiert 24.05.2008, 9960 Aufrufe, 15 Kommentare

@bastla
Hier also noch mal neu. Danke für deinen Tipp ;)

Hallo,
da mein Range dynamisch ist, hab ich etwas weiter gesucht und folgendes gefunden:

Sub Dateien_in_eine_Tabelle_zusammenfuehren()
'(C) Ramses
Dim Datei As String
Dim Arbeitsmappe As String
Dim Pfad As String
Pfad = "d:\workarea\"
Datei = Dir(Pfad & "*.xls")
Application.ScreenUpdating = False
'Active Mappe
Arbeitsmappe = ActiveWorkbook.Name
Do While Datei <> ""
'Öffnet eine Datei
Workbooks.Open Datei
'Kopiert von den Zeilen 6 bis zum Ende
'in die aktive Mappe und fügt sie jeweils unten an
Rows("6:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Copy _
Destination:=Workbooks(Arbeitsmappe).ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)
'Schliesst die geöffnete Datei
ActiveWorkbook.Close False
'Prüft für die nächste Datei
Datei = Dir()
Loop
Application.ScreenUpdating = True
End Sub

Hierbei steigt leider der Debugger in der Zeile "Workbooks.Open Datei" mit folgender Fehlermeldung aus:

Laufzeitfehler '1004': 'file1.xls' wurde nicht gefunden. Überprüfen Sie die Rechtschreibung des Dateinamens und überprüfen Sie, ob der Speicherort der Datei korrekt ist. Ist insofern kurios, da das Makro ja bereits im richtigen Verzeichnis den Namen der ersten Datei mit in der Fehlermeldung ausgibt.

Gruß
bolshi
Mitglied: miniversum
22.05.2008 um 12:22 Uhr
Ändere mal die Zeile
Datei = Dir(Pfad & "*.xls")
in
Datei = Pfad & Dir(Pfad & "*.xls")

da sonst in Datei nur der Dateiname steht OHNE die Pfadangabe
Bitte warten ..
Mitglied: bolshi
22.05.2008 um 13:55 Uhr
Hallo,

Ändere mal die Zeile
> Datei = Dir(Pfad &
"*.xls")
in
> Datei = Pfad & Dir(Pfad &
"*.xls")

da sonst in Datei nur der Dateiname steht
OHNE die Pfadangabe

Hat keine Änderung gebracht. Der Debugger bleibt nach wie vor bei
"Workbooks.Open Datei" stehen.

Nachtrag: Der Debugger springt zwar an. Bestätige ich in den Debug-Modus zu wechseln, finden sich in der neu angelegten Excel-Datei 5 Einträge aus der ersten Datei des Verzeichnisses, in dem alle Dateien liegen, die zusammengefügt werden sollen.
Bitte warten ..
Mitglied: bolshi
22.05.2008 um 14:11 Uhr
Habe grad eine weitere Änderung vorgenommen. Der Range war falsch. Bisherige Version:

Rows("6:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Copy _
Destination:=Workbooks(Arbeitsmappe).ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0)

Die Zeilenanzahl habe ich auf 2043 geändert. Dieser Wert entspricht jedoch dem meiner größten Datei.

Geht das auch dynamisch?

Dennoch nimmt das Makro nur die erste Datei und schmeisst danach erneut den o.g. Fehlercode:
"Datei1.xls wurde nicht gefunden." Ist der Gute wohl n bischen durcheinander. Denn letztlich hat er mir ja den kompletten INhalt der ersten Datei in die neu angelegte Excel-Tabelle geschrieben.
Bitte warten ..
Mitglied: bastla
22.05.2008 um 17:38 Uhr
Hallo bolshi!

Versuch es mit folgender Variation des Scripts von Ramses:
01.
Sub Dateien_in_eine_Tabelle_zusammenfuehren()
02.
'(C) Ramses
03.
Pfad = "d:\workarea\" 'Am Ende einen "\" verwenden!
04.

05.
Datei = Dir(Pfad & "*.xls")
06.
Application.ScreenUpdating = False
07.
'Aktuelle Tabelle
08.
Set Sammeltabelle = ActiveWorkbook.ActiveSheet
09.
Do While Datei <> ""
10.
    'Öffnet eine Datei
11.
    Workbooks.Open Pfad & Datei
12.
    'Kopiert von den Zeilen 6 bis zum Ende
13.
    'in die aktive Mappe und fügt sie jeweils unten an
14.
    ActiveWorkbook.ActiveSheet.Rows("6:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Copy _
15.
    Destination:=Sammeltabelle.Range("A65536").End(xlUp).Offset(1, 0)
16.
    'Schliesst die geöffnete Datei
17.
    ActiveWorkbook.Close False
18.
    'Prüft für die nächste Datei
19.
    Datei = Dir()
20.
Loop
21.
Application.ScreenUpdating = True
22.
End Sub
Nur zur Sicherheit: Deine Zieldatei sollte nicht im selben Pfad wie die einzelnen Quelldateien liegen ...

Grüße
bastla

P.S.: Bitte zum Posten von Scripts <code>-Tags setzen ...
Bitte warten ..
Mitglied: bolshi
22.05.2008 um 18:51 Uhr
Hallo bastla,

ich teste das nachher gleich durch. Eines noch zum Range der Sammeltabelle: "Range("A65536")
Ich lese die Dateien in Excel 2007 ein. Da ist meines Wissens bei 65536 noch nicht Schluss.
Die Zeilenanzahl meiner eingelesenen Dateien übersteigt schnell mal 750 tausend.

Ist das hier in dem Fall ein Problem? Muss ich i.d.F. den Range entsprechend auf 800 tausend setzen?
Bitte warten ..
Mitglied: bastla
22.05.2008 um 19:04 Uhr
Hallo bolshi!

Ich lese die Dateien in Excel 2007 ein. Da ist meines Wissens bei 65536 noch nicht Schluss.
Meines Wissens geht es bis Zeile 1.048.576 - kannst Du aber leicht überprüfen: Einfach einmal eine Zelle unterhalb Deiner letzten Zeile markieren und Strg + Pfeil unten drücken

Ist das hier in dem Fall ein Problem? Muss ich i.d.F. den Range entsprechend auf 800 tausend setzen?
Vermutlich lautet die Antwort zweimal "Ja" ...

"A65536" musst Du auf jeden Fall ändern, da von dieser Zelle aus nach oben die erste nicht leere Zelle gesucht wird.

Ein Problem wirst Du bekommen, wenn Du versuchst, mehrere der beschriebenen großen Tabellen in einer einzigen zusammenzufassen, da Dir so auch bei Excel 2007 die Zeilen ausgehen (die Million ist dann schnell voll) ...

Grüße
bastla
Bitte warten ..
Mitglied: bolshi
22.05.2008 um 21:11 Uhr
It doesn't work.

Der Debugger springt an folgende Stelle im Makro:


ActiveWorkbook.ActiveSheet.Rows("1:" & ActiveWorkbook.ActiveSheet.Range("A65536").End(xlUp).Row).Copy _
Destination:=Sammeltabelle.Range("A1000000").End(xlUp).Offset(1, 0)

Siehst du irgendwas auffälliges?
Bitte warten ..
Mitglied: bastla
22.05.2008 um 21:36 Uhr
Hallo bolshi!

Siehst du irgendwas auffälliges?
Du meinst vermutlich nicht die Tatsache, dass Du keine < code>-Formatierung verwendet hast ...
Abgesehen davon, dass auch bei der ersten "Range"-Angabe im Hinblick auf Deine großen Tabellen "A1000000" angebracht wäre, sehe ich eigentlich nichts Störendes ...

Tritt der Fehler bereits bei der ersten Datei auf? Falls nicht, wie "voll" ist die Sammeltabelle bereits?

Zum Eingrenzen des Fehlers (kann sich ja auf Quelle oder Ziel des Kopiervorganges beziehen) könntest Du einmal die zu kopierenden Zeilen jeweils nur markieren lassen - falls das funktioniert, liegt das Problem bei der Sammeltabelle.

Für diesen Test musst Du nicht viel ändern:
01.
ActiveWorkbook.ActiveSheet.Rows("1:" & ActiveWorkbook.ActiveSheet.Range("A1000000").End(xlUp).Row).Select _
02.
'Destination:=Sammeltabelle.Range("A1000000").End(xlUp).Offset(1, 0)
Grüße
bastla
Bitte warten ..
Mitglied: bolshi
22.05.2008 um 21:56 Uhr
Der Debugger öffnet die erste Datei im Verzeichnis und bringt ad hoc Fehlercode 400
Bitte warten ..
Mitglied: bolshi
23.05.2008 um 10:14 Uhr
Hallo bastla,

kannst du mit dem Fehlercode irgendwas anfangen?

Gruß
bolshi
Bitte warten ..
Mitglied: bastla
23.05.2008 um 12:27 Uhr
Hallo bolshi!

kannst du mit dem Fehlercode irgendwas anfangen?
Unter Excel 2003 (habe gerade keine 2007er Version zur Hand) wäre der Fehler 400 "Formular wird bereits angezeigt und kann daher nicht gebunden dargestellt werden" bezogen auf ein UserForm und passt hier also überhaupt nicht ...

Was hat denn der Versuch mit dem geänderten Code ("...Select") ergeben?

Grüße
bastla
Bitte warten ..
Mitglied: bolshi
23.05.2008 um 19:01 Uhr
Nichts neues. Sieh dir mal folgenden Ansatz an:

01.

02.
Dim T
03.
T = Workbooks(Arbeitsmappe).ActiveSheet.UsedRange.Rows.Count + 1
04.
Und an Stelle des o.g. Ansatzes folgendes:

01.
ActiveWorkbook.ActiveSheet.UsedRange.Copy _
02.
Destination:=Workbooks(Arbeitsmappe).ActiveSheet.Range("A" & T) 
Der Debugger springt da jedoch sofort auf die Zeile, wo "T" initialisiert wird. Ich weiß beim besten Willen nicht warum.

Grüße
bolshi
Bitte warten ..
Mitglied: bastla
24.05.2008 um 17:04 Uhr
Hallo bolshi!

Demnach wäre das Problem bei der Zieltabelle zu suchen - woran es allerdings liegt, kann ich mir nicht erklären - bei mir laufen alle Varianten ...

Grüße
bastla
Bitte warten ..
Mitglied: bolshi
24.05.2008 um 19:23 Uhr
Hier jetzt auch Hab Dank für deine Denkanstöße.

Gruß
bolshi
Bitte warten ..
Mitglied: bastla
24.05.2008 um 19:43 Uhr
Hallo bolshi!

Hier jetzt auch
Freut mich.

Wie hast Du's letztlich hinbekommen?

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx)

gelöst Frage von Booster07Microsoft Office7 Kommentare

Hallo zusammen, ich habe sehr viele Textdateien, die z.B. im Ordner C:\Test\txt\ abgelegt sind. Nun will ich diese Textdateien ...

VB for Applications

VB Skript Excel Datei

gelöst Frage von FragerVB for Applications3 Kommentare

Hallo Zusammen, Ich brauche eure Hilfe. Ich habe eine Datei 1.xlsx nun brauche ich ein Skript, was die Datei ...

Microsoft Office

Excel 2010 schreibgeschützte Datei

Frage von Florian86Microsoft Office

Hallo, kennt jemand das Phänomen Eine Excel Datei ist von einem User geöffnet. Ein zweiter und dritter möchte diese ...

Bibliotheken & Toolkits

Eine beschädigte Excel-Datei

Frage von RasmusMorrsBibliotheken & Toolkits4 Kommentare

Hallo, Leute! Alle meine Excel-Dateien sind beschädigt und einige von ihnen sich nicht mehr öffnen lassen. Ich habe Paar ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 1 TagInternet5 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 1 TagWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 2 TagenWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 2 TagenSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
TAPI auf einem Win2016Server installieren und einrichten
Frage von wstabelTK-Netze & Geräte30 Kommentare

Hallo liebe Admins, ich habe folgende Situation: 1 Windows Server 2016 Standard als DC 1 SNOM 710 IP-Telefon 1 ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell25 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...

Microsoft
Übertragung von MS Volumenlizenzen
Frage von SherlockineMicrosoft20 Kommentare

Ich bin Angestellte in einer kleinen 10-köpfigen IT-Firma, die Netzwerklösungen, Telefonielösungen und Ähnliches anbietet. Im Sommer hatten wir einen ...