Hallo,
ich habe ein Formular, aus welchem die Werte 1 bis 5 ausgelesen werden. Im ersten Schritt sollen die Werte dann an das Ende einer Tabelle geschrieben werden, im zweiten schritt soll die Tabelle nach den Werten der Spalte 1 und dann in zweiter Ordnung nach den Werten der Spalte 2 sortiert werden.
Das ganze läuft durch den nachfolgenden Code ab. Dieser funktioniert auch, wenn ich das Formular aus der Entwicklungsumgebung starte. Es funktioniert jedoch nicht, wenn das Formular über ein Makro „Auto_Open“ starte. Dann werden zwar die Daten richtig in die Tabelle geschrieben, die Sortierung findet jedoch nicht statt.
Den Code für die Sortierung habe ich als Makro aufgezeichnet und abgeändert um die letzte Zeile für den Sortierbereich zu definieren.
Ich habe auch schon probiert, die Sortierung als extra Prozedur zu starten, jedoch klappt dann das auffinden der letzten Zeile (loLetzte) nicht mehr. Es wird dann eine Fehlermeldung generiert.
Vielen Dank für Hilfe
Axel
Sub Start()
Load usrDatenEingabe
usrDatenEingabe.Show
End Sub
Private Sub cmdDatenSchreiben_Click()
Dim Spalte As Integer, loLetzte As Long
With ThisWorkbook.Worksheets(„Eingaben“)
loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
Spalte = 1
.Cells(loLetzte + 1, Spalte) = txtWert1.value
Spalte = Spalte + 1
.Cells(loLetzte + 1, Spalte) = txtWert2.value
Spalte = Spalte + 1
.Cells(loLetzte + 1, Spalte) = txtWert3.value
Spalte = Spalte + 1
.Cells(loLetzte + 1, Spalte) = txtWert4.value
Spalte = Spalte + 1
.Cells(loLetzte + 1, Spalte) = txtWert5.value
End With
Range(Cells(1, 1), Cells(loLetzte + 1, 5)).Select
Selection.Sort _
Key1:=Cells(1, 1), Order1:=xlAscending, _
Key2:=Cells(1, 2), Order2:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers, _
DataOption2:=xlSortNormal
Cells(1, 1).Select
End Sub