06.06.2022, 17:40
Heje Excelfreunde,
Versuch (stringdaten = Tagesdatum) in ein Array ein- und auszulesen. Mit den for-Schleifen funktioniert das auch ganz gut, nur etwas müsig. Die Daten werden in ComboBoxen eingelesen. Zurvor werden die Basisdaten zu Daten ohne Duplikate aufbereitet. Einmal auf
die reinen Jahreswerte in eine Combobox und die Tagesdaten in eine weiter Combobox. Mit Auswahl einer Jahreszahl werden in der zweiten Combobox die Tageswerte entsprechend auf die der Jahreszahl reduziert. Vorgang beendet, werden anschließend wieder die Tageswerte vollständig in die Combobox zurückgeschrieben.
Das Array "strYearSortDatum" ist modulweit und beinhaltet die duplikatfreien Tageswerte. Im Codebeispiel werden die Daten in das Array geschrieben. Funktioniert auch. In ähnlicher Weise werden die Daten auch zurückgeschrieben. Das muss schneller und eleganter gehen.
Habe schon einiges probiert, aber irgendwie klappt es nicht...
Bitte um Vorschläge, Ideen...Werte aus einem Rangebereich in ein Array zu schreiben und Daten wieder in einen Rangebereich zurückzuschreiben.
so wie: strYearSortDatum = rngSp02.value oder anders...
Siehe nachfolgendes Code-Bsp.
Versuch (stringdaten = Tagesdatum) in ein Array ein- und auszulesen. Mit den for-Schleifen funktioniert das auch ganz gut, nur etwas müsig. Die Daten werden in ComboBoxen eingelesen. Zurvor werden die Basisdaten zu Daten ohne Duplikate aufbereitet. Einmal auf
die reinen Jahreswerte in eine Combobox und die Tagesdaten in eine weiter Combobox. Mit Auswahl einer Jahreszahl werden in der zweiten Combobox die Tageswerte entsprechend auf die der Jahreszahl reduziert. Vorgang beendet, werden anschließend wieder die Tageswerte vollständig in die Combobox zurückgeschrieben.
Das Array "strYearSortDatum" ist modulweit und beinhaltet die duplikatfreien Tageswerte. Im Codebeispiel werden die Daten in das Array geschrieben. Funktioniert auch. In ähnlicher Weise werden die Daten auch zurückgeschrieben. Das muss schneller und eleganter gehen.
Habe schon einiges probiert, aber irgendwie klappt es nicht...
Bitte um Vorschläge, Ideen...Werte aus einem Rangebereich in ein Array zu schreiben und Daten wieder in einen Rangebereich zurückzuschreiben.
so wie: strYearSortDatum = rngSp02.value oder anders...
Siehe nachfolgendes Code-Bsp.
Code:
Private Sub YearSortDatumArryBefuellen()
Dim WSTab03 As Worksheet
Dim lngLastRow02 As Long
Dim rngSp02 As Range
Dim lngZ01 As Long
On Error GoTo Fehler
Set WSTab03 = ThisWorkbook.Worksheets("Tabelle3")
Set rngSp02 = ThisWorkbook.Worksheets("Tabelle3").Range("AR10:AR25008")
lngLastRow02 = rngSp02.Rows(rngSp02.Count).End(xlUp).Row
With ActiveWorkbook
.Unprotect
With WSTab03
.Unprotect
Erase strYearSortDatum()
ReDim strYearSortDatum(1 To (lngLastRow02 - 9))
For lngZ01 = 1 To (lngLastRow02 - 9) Step 1 'Das Array wir aus AR10:AR25008 befüllt
strYearSortDatum(lngZ01) = CStr(.Range("AR" & lngZ01 + 9).Value)
'Debug.Print strYearSortDatum(lngZ01)
Next lngZ01
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
.Protect Structure:=True, Windows:=False
End With
Vielen Dank
--Janosch
Excel 2019 (64bit) Win 10 Pro (64bit)
--Janosch
Excel 2019 (64bit) Win 10 Pro (64bit)