260 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe mehrere Excel-Dateien die Rohdaten einer Versuchsreihe enthalten. Diese enthalten jeweils die Spalten Zeit, Temperatur, Druck. etc....nun soll ich aus diesen Spalten ein Diagramm erstellen. Das soll ich für mehr als 20 Dateien machen, mit jeweils mehr as 70.000 Zeilen.

Ich dachte nun ich könnte eine Datei schreiben die mir aus den Rohdaten die 3-4 Spalten die ich brauche raussucht und sie in eine neue Tabelle kopiert. sodass ich daraus ein Diagramm erstellen kann. Und das ich dann jeweils nur noch in Tabelle 1 die Rohdaten kopiere und automatisch das Diagramm erhalte.....

Ist sowas überhaupt machbar? Ich wäre froh wenn mir dazu jemand helfen könnte....

Gruß

Alex

4 Antworten

0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)
Hi Alex,

sind die Zeitangaben in allen 20 Dateien dieselben oder interschiedliche?

Bis später, Karin
0 Punkte
Beantwortet von
Bearbeitet
Hallo,

die Zeitangaben starten alle bei 00:00:00 und laufen dann Sekundenweise hoch. Jedoch ist die Position im Sheet immer etwas anders. D.h. in Datei 1 steht "Time" in Zelle A32 und in Datei 4 steht es in A35.

Also sowas wie Suche Zelle in der Time steht und kopiere alles darunter bis Zelle 40.000 in Tabelle2 ab A1

Danke für deine Antwort schonmal :)
0 Punkte
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

öffne alle Arbeitsmappen aus denen du die Daten kopieren willst. Mit folgendem Makro in der Arbeitsmappe, in die die Daten kopiert werden sollen, kannst du dein Vorhaben realiseren:

Sub Kopieren()
    Dim rngZelle As Range
    Dim lngLetzte As Long
    Dim lngZiel As Long
    Dim wkbMappe As Workbook
    lngZiel = 2
    For Each wkbMappe In Workbooks
        If wkbMappe.Name <> ThisWorkbook.Name And wkbMappe.Name <> "PERSONAL.XLSB" Then
            With wkbMappe.Worksheets("Tabelle1")
                Set rngZelle = .Columns(1).Find("Time", lookat:=xlWhole)
                If Not rngZelle Is Nothing Then
                    lngLetzte = .Columns(1).Find(What:="*", _
                        SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
                    Union(.Range(.Cells(rngZelle.Row + 1, 1), _
                        .Cells(lngLetzte, 1)), _
                        .Range(.Cells(rngZelle.Row + 1, 3), _
                        .Cells(lngLetzte, 4))).Copy _
                        ThisWorkbook.Worksheets("Tabelle2").Cells(lngZiel, 1)
                    lngZiel = ThisWorkbook.Worksheets("Tabelle2").Columns(1).Find(What:="*", _
                        SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
                End If
            End With
        End If
    Next wkbMappe
End Sub

Beachte: da du nicht angegeben hast, wie das Tabellenblatt heißt aus dem kopiert werden soll, bin ich davon ausgegangen dass es "Tabelle1" heißt.

Bis später, Karin

0 Punkte
Beantwortet von
Hallo und Vielen Dank schonmal!

Ich probiere es später aus! Vielen Dank

Alex
...