Hallo,
ich möchte eine Excel Tabelle auswerten.
Die Tabelle „Eingabe“ hat 93 Spalten. Die erste Spalte beinhaltet ein Datum, es kommt jedoch mehrfach das gleiche Datum vor. Der restliche Inhalt der Tabelle ist größtenteils Text, in manchen Spalten sind jedoch auch Zahlen.
Die Anzahl der Zeilen ist nicht festgelegt, sondern soll durch zwei vorgegebene Daten (von Tag xxx bis Tag yyy) definiert werden. Da ein Datum mehrfach (sortiert) vorkommt, würde ich gerne mit dem Startdatum die Spalte A von oben beginnend durchsuchen um zu der Zeile der ersten Übereinstimmung zu kommen. Für die Zeile des Enddatums würde ich die Spalte von unten beginnend durchsuchen um auch hier zu der Zeile der ersten Übereinstimmung zu kommen bzw. zu der letzten Zeile mit dem entsprechenden Datum.
Meine Idee ist es nun, die dann definierte Tabelle („Zeile_Startdatum1:Zeile_Enddatum93“) in ein Array einzulesen, neu zu sortieren und dann in das Tabellenblatt „Auswertung“ zu schreiben. Dort sollen dann die Spalten über ZÄHLENWENN, ausgezählt werden.
Um die Daten aus dem Tabellenblatt einzulesen, zu sortieren und wieder auszugeben habe ich folgenden Code im Netz gefunden. (die Kommentare sind von mir, wie ich denke, dass ich den Code ungefähr anpassen müsste) Eine erneute Sortierung ist Notwendig, da die auszuwertenden Daten durch weitere vorgegebene Punkte reduzuiert werden können. Ich würde die sich ergebenden Datentabelle entsprechend öfter auslesen lassen, bis nur noch die Daten übrig bleiben, die ich letztenendes auszählen möchte.
Sub InArrOutArr()
Dim rng As Range
Dim arr As Variant 'Dim Zeile_Startdatum, Zeile_Enddatum As Integer
Application.ScreenUpdating = False
Set rng = Range(„A1“).CurrentRegion 'Worksheets(„Eingabe“).Range(Cell(Zeile_Startdatum, 1), Cell(Zeile_Enddatum, 93))
arr = rng.Value
Workbooks.Add
Range(„A1“).Range(rng.Address).Value = arr 'Range(Cell(Zeile_Startdatum, 1)
Range(„A1“).Sort key1:=Range(„A1“), _ 'je nachdem, nach welcher Spalte sortiert werden soll
order1:=xlAscending, header:=xlNo
arr = Range(„A1“).CurrentRegion.Value
ActiveWorkbook.Close savechanges:=False
With Worksheets(„Tabelle2“)
.Range(rng.Address).Value = arr '.Worksheets(„Ausgabe“).Range…
.Select
End With
Application.ScreenUpdating = True
End Sub
Ich habe nun überlegt, das Durchsuchen der Spalte mit dem Datum mit einer „Do - Loop … Until“ Scheife zu machen. Ich habe nun zwar schon einiges versucht zu finden bzw. mir zu erklären, allerdings komme ich nicht mit der Formulierung des Codes und der Verknüpfung zum Einlesen und Ausgeben des Arrays nicht zurecht.
Viele Dank für Hilfe
Gruß Axel