Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1052to1056
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

Dateien auslesen

Dateien auslesen
24.02.2009 10:01:37
Claudia
Hallo zusammen,
ich brauche mal wieder Eure Hilfe bei VBA.
Ich möchte Dateien eines bestimten Ordners auslesen und in der bestehenden Datei "Zusammenfassung" im gleichen Ordner zusammenfassen.
Genauer gesagt soll aus jeder Datei nur das Tabellenblatt "Übersicht" ausgelesen werden. Dieses Tabellenblatt gibt es aber nicht in jeder Datei. Damit fängt das Problem schon an, es geht aber weiter: Irgendwo muss in der neuen Datei (= Zusammenfassung) hinterlegt werden, welche Dateien bereits ausgelesen wurden (vielleicht auf dem ersten Tabellenblatt, damit ich im nachhinein eine manuelle Aktualisierung vornehmen kann --- sprich Datei aus dieser Dateien-Übersicht löschen, damit das Makro diese Datei neu auslesen kann).
Ich will nämlich verhindern, dass dieses Makro alle Dateien immer wieder von neuen ausliest. Bei rund 80 Dateien (und es kommen ja immer mehr dazu) ist das unnötige Arbeit und Zeitverschwendung. Es reichen auch immer nur die Werte (also keine Formeln und keine Verknüfpungen).
Kann mir da jemand unter die Arme greifen? Ich weiß gar nicht wo ich wieder anfangen soll. Vielen lieben Dank!
Liebe Grüße
Claudia

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien auslesen
24.02.2009 10:36:35
D.Saster
Hallo,
ungetestet.
In ein Modul in Zusammenfassung.xls:

Sub DateienLesen()
Dim strFile As String
Dim wkbQuelle As Workbook, wksQuelle As Worksheet, _
wksZiel As Worksheet, wksFiles As Worksheet
Dim lngRows As Long, lngCols As Long
Const strPfad As String = "c:\Test\"  'anpassen
Set wksZiel = ThisWorkbook.Sheets("Zusammenfassung")
Set wksFiles = ThisWorkbook.Sheets("Dateien")
Application.ScreenUpdating = False
strFile = Dir(strPfad & "*.xls")
Do While strFile  ""
If strFile  ThisWorkbook.Name And _
Application.CountIf(wksFiles.Columns(1), strFile) = 0 Then
Set wkbQuelle = Workbooks.Open(strPfad & strFile)
On Error Resume Next
Set wksQuelle = wkbQuelle.Sheets("Übersicht")
On Error GoTo 0
If wksQuelle Is Nothing Then  'Übersicht nicht vorhanden
wkbQuelle.Close False
Else
With wksQuelle
With .Cells(1, 1).CurrentRegion
lngRows = .Rows.Count - 1
lngCols = .Columns.Count
End With
.Cells(2, 1).Resize(lngRows, lngCols).Copy
wksZiel.Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial Paste:=xlValues
End With
wksFiles.Cells(Rows.Count, 1).Offset(1) = strFile 'Dateinamen merken
wkbQuelle.Close False
End If
Set wksQuelle = Nothing
strFile = Dir
End If
Loop
Application.ScreenUpdating = True
End Sub


Gruß
Dierk

Anzeige
AW: Dateien auslesen
24.02.2009 11:26:50
fcs
Hallo Claudia,
hier mal ein Beispiel, dass du noch an deine Daten im Blatt Übersicht anpassen muss.
Gruß
Franz
https://www.herber.de/bbs/user/59718.xls
Ein Meisterwerk!
24.02.2009 17:25:20
Claudia
Hallo Franz,
da hast Du ein Meisterwerk gezaubert. Besser als ich es mir vorgestellt habe bzw. genau das was ich mir gewünscht habe. Einfach super!
Vielen lieben Dank!
Liebe Grüße
Claudia
@Franz ---> noch eine Bitte:
25.02.2009 08:35:37
Claudia
Hallo lieber Franz,
ich habe noch eine große Bitte an Dich. Könntest Du das Makro auch so ändern, dass man den Pfad des Ordners angeben kann (am besten wieder im ersten Tabellenblatt). So muss ich nicht immer die Datei in diesem Ordner haben. Ich wäre also flexibler (das kommt davon, weil Dein Makro so klasse ist :-) ).
Und dann hätte ich noch die Frage, ob Du es auch so einrichten könntest, dass die auszulesenden Tabellenblätter (hier jeweils "Übersicht" Datei) immer ganz kopiert werden und dann in diese Datei eingefügt werden. Prima wäre es, wenn es immer nur die Werte sind (also keine Formeln oder Verknüpfungen). Da sich der Name des Tabellenblatt (= "Übersicht") ändern könnte und ich wenig Ahnung von VBA habe, wäre es klasse wenn ich den Namen des Tabellenblattes ebenfalls im ersten Tabellenblattes ändern könnte.
Wäre das für Dich machbar?
Ich sage einfach mal im Voraus Tausend Dank!
Liebe Grüße
Claudia
Anzeige
AW: @Franz ---> noch eine Bitte:
25.02.2009 14:19:46
fcs
Hallo Claudia,
machbar ist vieles. Aber so ist das halt mit dem berühmten kleinen Finger.
Hier die Steuerungsdatei so abgewandelt, dass immer die gefundenen Tabellenblätter kopiert werden - ohne Formeln.
Gruß
Franz
https://www.herber.de/bbs/user/59764.xls
Super, vielen vielen Dank! Bin
25.02.2009 15:51:22
Claudia
sehr glücklich. :-)
Shit, noch ein Problem
26.02.2009 12:15:52
Claudia
Hallo Franz, hallo liebes Forum.
ich habe noch zwei Fragen (besser wohl Wünsche):
A) Wie schaffe "ich" das, dass sich Verknüfpungen direkt aktualisieren? Es kommt immer eine Frage, ob die Werte aktualsiert werden sollen.
B) Die Blätter lassen sich nicht kopieren, wenn ein Zellschutz drauf ist. Kann man das umgehen (also nicht Schutz knacken, sondern einfach das Blatt mit Schutz kopieren)?
Lieben Dank!
LG
Claudia
Anzeige
AW: Shit, noch ein Problem
26.02.2009 14:49:09
fcs
Hallo Claudia,
A) dann muss man im Code die entsprechende Tastenkombination (Alt+u) vor dem öffnen der datei senden.
B) Blatt mit Schutz kopieren geht nicht.
Entweder "einfach" den Schutz aufheben oder aber die Formate und Werte in eine neues Leerblatt in der Zusammenfassung kopieren.
Ich hab mal alles in die neue Variante meiner Steuerungsdatei eingebaut. Außerdem war noch ein kleiner Fehler im makro für die verzeichnis-Auswahl, den ich beseitigt hab.
Gruß
Franz
https://www.herber.de/bbs/user/59810.xls
Danke!
27.02.2009 19:02:25
Claudia
Hallo Franz,
Du bist ein Schatz. :-) Vielen Dank!
Konnte leider nicht früher antworten, da ich auf Seminar war und das Hotel tatsächlich keinen Internetzugang auf dem Zimmer hatte.
Schönes Wochenende
Claudia
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige