Excel - Daten sortieren mit VBA über Variablen

Status
Für weitere Antworten geschlossen.

Nico_B

Lt. Junior Grade
Registriert
Sep. 2010
Beiträge
345
Guten Abend.

ich habe mir in Excel eine Vorlage erstellt, die einen Datenexport aus einer Datenbank auswerten soll. Die Datensätze soll jedoch für Einzelbetrachtungen auch soritert werden. Da der Datenbestand wachsen wird, soll die Abfrage dynamisch gestaltet sein.

Ich bekomme jedoch immer die Fehlermeldung"Typen unverträglichkeit". Vielleicht könnt ihr mir weiterhelfen.

Code:
Sub Daten_SORTIEREN()
Dim i As Long, SS1 As Long, SS2 As Long, SS3 As Long, ES As Long, LS As Long, EZ As Long, LZ As Long

'Datenbereich
ES = Sheets("Optionen").Range("B10").Value
LS = Sheets("Optionen").Range("B30").Value
EZ = Sheets("Optionen").Range("B35").Value
LZ = Sheets("Optionen").Range("B36").Value

'Suchspalten
SS1 = Sheets("Optionen").Range("B12").Value
SS2 = Sheets("Optionen").Range("B13").Value
SS3 = Sheets("Optionen").Range("B10").Value

' letzte zeile Ermitteln
i = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
' Letzte Zeile in Zelle schreiben
Sheets("Optionen").Range("B36").Value = i

Range(ES & (EZ - 1) & ":" & LS & LZ).Sort Key1:=Range(SS1 & EZ), Key2:=Range(SS2 & EZ), Key3:=Range(SS3 & EZ), Header:=xlYes

End Sub
 
Hallo Nico,

Du definierst SS1 bis SS3 als Long und verwendest diese dann in der Range-Anweisung. Das darf man aber nicht, da das Format ja nicht Range(long long) ist. Nimm statt Range() besser Cells(SS1, EZ).
Und gib vor Range() oder Cells() am besten auch immer das Arbeitsblatt an.

Gruß,
Mick
 
Zuletzt bearbeitet:
Sofern es alles Zahlen sind ...
Range("11" & "22" & ":" & "33" & "44") ergibt Range("1122:3344")
Damit will Excel auf die Zeilen 1122 bis 3344 zugreifen.
Funktioniert nur nicht mit .Sort().

Code:
with Tabelle1
    .Range(.Cells(EZ - 1,ES),.Cells(LZ, LS)).sort
End With
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben