24 Aufrufe
Gefragt in Tabellenkalkulation von

Guten Morgen,

habe ein Bereich zugewiesen den ich gern nach Spalten sortieren möchte. Zuerst nach A dann B.

Nur wo ist der Fehler ??

Sub Sort()
   Dim strSpA, strSpC, strBer, AnzahlDaten As String
   
    'Anzahl ermitteln
    AnzahlDaten = Range("A65535").End(xlUp).row
   
    'Bereich markieren
    Sheets("Master").Range(Cells(1, 1), Cells(AnzahlDaten, 7)).name = "Test"


   'Spalten
    strSpA = "A"
    strSpC = "C"
   

 'Bereich
    strBer = "Test"

    With Master
    Range(strBer).Sort Key1:=Range(strSpA), Order1:=xlDescending, Header:=xlYes
    Range(strBer).Sort Key2:=Range(strSpC), Order2:=xlDescending, Header:=xlYes
    End With
   
    End Sub

Villeicht könnt Ihr mir helfen ?

Gruß, Damian

2 Antworten

0 Punkte
Beantwortet von
ausgewählt von halfstone
 
Beste Antwort
Gelöst, Ich glaub ich sollte etwas Pausieren.

Für alle die es Intressiert

ersetzt im oberen Code das :

    With Master
    Range(strBer).Sort key1:=Range(strSpA & "7"), order1:=xlDescending, _
    key2:=Range(strSpC & "7"), order2:=xlDescending, Header:=xlYes

VG, Damian
0 Punkte
Beantwortet von

Hallo Damian

Oha,deine Fehleranzahl ist beeindruckend!

Eine With Anweisung setzt einen vorrangestellten Punkt vorraus.

Deine With Anweisung ist also Sinnlos!

Deine Variablen sind bis auf eine nicht Deklariert!

Daher werden sie als Variant Deklariert!

Die einzige Deklarierte Variable ist falsch Deklariert

AnzahlDaten ist ein String,gefordert ist  Long!

Sheets ist NICHT eindeutig!

Es heißt Worksheets,Sheets kann auch ein anderes Element sein.

A65535?

Letzte zeile eines Worksheets
ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
 

Letzte zeile einer Spalte(Die 1 steht für Spalte A)
ActiveSheet.Range(Cells(Rows.Count, 1), Cells(Rows.Count, 1)).End(xlUp).Row
 

Viel Spass

Michael

...