PDA

Vollständige Version anzeigen : Inhalte aus mehreren Dateien in eine Datei kopieren


Chris2610
05.05.2009, 09:50
Hallo,

ich muss hier die Inhalte aus einer ganze Reihe von Dateien in eine einzelne, neue kopieren. Dazu habe ich einen Code zusammengebastelt, allerdings wird da meine Datei jedes Mal überschrieben, wenn ich den Inhalt aus einer neuen Datei hole, d.h. das, was bisher in meiner Datei stand ist weg.

Hier ist der Code, mit dem ich den Inhalt der Dateien in meine neue Datei kopiere, kann mir jemand sagen, was ich umstellen muss, damit der neue Text angehängt wird?

Sub Bereich_kopieren()
Dim day As Integer
Dim maxday As Integer
Dim strFile As String
day = 1
maxday = 31
Do While day < maxday

If Len(day) - 1 = 1 Then
strFile = "L:\2009-04\2009-4-0" & day & "_Störungen.xls"
Else
strFile = "L:\2009-04\2009-4-" & day & "_Störungen.xls"
End If

If PathExists(strFile) Then

Set wsZiel = ActiveWorkbook.ActiveSheet

'Quellblatt = Datei, Blatt 1
Set wsQuelle = Workbooks.Open(Filename:=strFile).Worksheets(1)

'Kopieren
wsQuelle.Cells.Copy Destination:=wsZiel.Cells

'Quelle schließen
wsQuelle.Parent.Close
Set wsQuelle = Nothing
Set wsZiel = Nothing

Dim bNull As Boolean
Dim i As Integer
i = 3
bNull = False
maxZ = Worksheets("Alle Störungen").Cells(Rows.Count, "A").End(xlUp).Row 'max Anzahl der Zeilen auslesen (Grenze für Schleife)
Do While i < maxZ And bNull = False

If Range("B" & i).Value = "" Then

Rows(i & ":" & maxZ).Delete Shift:=xlUp
bNull = True

End If
i = i + 1
Loop

End If

day = day + 1
Loop
End Sub

ebs17
05.05.2009, 10:18
'Kopieren
wsQuelle.Cells.Copy Destination:=wsZiel.Cells

Das sieht nicht so aus, als ob Du die Zieladresse variierst.

Chris2610
05.05.2009, 10:30
Hey,
genau an dem Punkt wäre ich auch der Meinung, dass etwas geändert werden müsste. Mein Problem und meine Versuche hier beziehen sich mehr auf das "wie" ;)

BoskoBiati
05.05.2009, 11:07
Hallo Chris,

wenn Du das ganze Blatt kopierst, wird das so nicht gehen. Du müsstest die Daten zeilen- bzw. spaltenweise kopieren oder sogar zellenweise, je nach Datenmenge und -anordnung.

Chris2610
05.05.2009, 11:15
Hmm, das ist ja mal "suboptimal" würde ich sagen ;-)

Das heißt, mein bisheriger Code ist so nicht mehr verwendbar?????
Dann werde ich mal nach anderen Kopiermethoden suchen...

BoskoBiati
05.05.2009, 11:45
Hallo Chris,

der Code ist nicht für den Mülleimer, aber da Du jeweils die ganze Quelltabelle in die Zieltabelle kopierst, wird mit jeder neuen Datei die Alte überschrieben.
Du kannst aber ohne Probleme die Daten zeilenweise einlesen, oder auch spaltenweise. Wenn etwas mehr bekannt wäre über den Tabellenaufbau wäre es einfacher.

Chris2610
05.05.2009, 11:58
Hmm, das hört sich schonmal besser an ;-)

Bin nämlich gerade das Web am durchforsten aber ich versteh nicht wirklich viel :/

Also die Tabellen sind an für sich immer gleich aufgebaut:

Die ersten beiden Zeilen sind die Überschriften, z.B. so:
TOP 1
Prio Beschreibung Dauer usw.

Darunter folgen dann in den nächsten Zeile die Daten. Allerdings kann die Anzahl der Zeilen pro Datei variieren, d.h. ich weiß nicht wieviele Zeilen in mein Dokument kopiert werden müssen :-/

Unter den eigentlich nutzdaten folgt noch eine Legende, die ich aber mit dem unteren Teil meines Codes lösche...

Ich hoffe, dass das als Erklärung weiterhilft!?!

BoskoBiati
05.05.2009, 12:32
Hallo Chris,

hilft, ich kann mich aber nicht vor heute Abend damit befassen.

Chris2610
05.05.2009, 12:47
Das ist super nett von dir. Ich werde sonst morgen nochmal reinschauen (falls ich es bis dahin nicht doch schon irgendwie geschafft habe :) ) (vll hat ja schon irgendjemand anders auch ne Lösung oder nen Ansatz parat...)

Schöne Grüße

Sebastian Schulz
05.05.2009, 13:53
Hallo Chris,

du könntest Dir auch folgendes Addin anschauen.

http://www.excel-inlife.de/index.php?option=com_content&task=view&id=46&Itemid=90