Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sortieren mit variablem Key

Sortieren mit variablem Key
09.05.2008 09:26:00
Michael
Hallo zusammen,
ich bekomme die Fehlermeldung "Methode Range bei Objekt "-Worksheet" nicht anwendbar", wenn ich folgendes Makro laufen lasse:

Public Sub VP_sortieren()
Application.ScreenUpdating = False
Set xlsheet1 = Worksheets("Config")
Set xlsheet2 = Worksheets("VP nach ZO")
Set xlsheet3 = Worksheets("VP gesamt")
Dim auswahl, auswahl_Spalte1, auswahl_Spalte2 As Integer
Dim a, i As Integer
Dim row_min, row_max, col_min, col_max As Integer
Dim Kopfzeilen As Integer
Kopfzeilen = 0
row_min = xlsheet2.UsedRange.End(xlUp).Row
row_max = xlsheet2.UsedRange.End(xlDown).Row
col_min = xlsheet2.UsedRange.End(xlToLeft).Column
col_max = xlsheet2.UsedRange.End(xlToRight).Column
Do While IsNumeric(xlsheet2.Cells(row_min + Kopfzeilen, col_min)) = False Or IsNumeric(xlsheet2. _
Cells(row_min + Kopfzeilen, col_min + 1)) = False
Kopfzeilen = Kopfzeilen + 1
Loop
frmSortieren.ComboBox1.AddItem ("---keine Auswahl---")
frmSortieren.ComboBox1.AddItem ("nach Leistung (DRZ*Last)")
frmSortieren.ComboBox1.AddItem ("Meanderförmig nach DRZ und Last")
frmSortieren.ComboBox1.AddItem ("nach 2 beliebigen Spalten")
frmSortieren.ComboBox1.ListIndex = 0
For a = 1 To col_max
frmSortieren.ComboBox2.AddItem a
frmSortieren.ComboBox3.AddItem a
Next
frmSortieren.Show
auswahl = frmSortieren.ComboBox1.ListIndex
auswahl_Spalte1 = frmSortieren.ComboBox2.ListIndex + 1
auswahl_Spalte2 = frmSortieren.ComboBox3.ListIndex + 1
If auswahl = 1 Then
ElseIf auswahl = 2 Then
ElseIf auswahl = 3 Then
xlsheet2.Range(xlsheet2.Cells(row_min + Kopfzeilen, col_min), xlsheet2.Cells(row_max,    _
_
col_max)).Sort _
Key1:=xlsheet2.Range(xlsheet2.Cells(row_min + Kopfzeilen, auswahl_Spalte1)), Order1:= _
xlAscending, _
Key2:=xlsheet2.Range(xlsheet2.Cells(row_min + Kopfzeilen, auswahl_Spalte2)), Order2:= _
xlAscending
End If
Programmende:
Set xlsheet1 = Nothing
Set xlsheet2 = Nothing
Set xlsheet3 = Nothing
Application.ScreenUpdating = True
Exit Sub
End Sub


Es können in einer Userform beliebige Spalten angegeben werden, nach denen sortiert werden soll. Diese werden ausgelesen und als Key übernommen. Sollen zumindest. Leider funktioniert es eben nicht... :(
Kann jemand helfen?
Gruß
Micha

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sortieren mit variablem Key
09.05.2008 10:01:39
Rudi
Hallo,
versuchs so:

auswahl = frmSortieren.ComboBox1.ListIndex
auswahl_Spalte1 = frmSortieren.ComboBox2.ListIndex + 1
auswahl_Spalte2 = frmSortieren.ComboBox3.ListIndex + 1
If auswahl = 3 Then
With xlsheet2
.Range(.Cells(row_min + Kopfzeilen, col_min), .Cells(row_max, col_max)).Sort _
Key1:=.Cells(row_min + Kopfzeilen, auswahl_Spalte1), Order1:=xlAscending, _
Key2:=.Cells(row_min + Kopfzeilen, auswahl_Spalte2), Order2:=xlAscending
End With
End If


Gruß
Rudi

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige