Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Abwechselndes Sortieren bei Doppelklick

Abwechselndes Sortieren bei Doppelklick
17.12.2007 17:50:33
Klaus
Hallo Forum,
Ich möchte bei Doppelklick in Zeile M10:X10 einen Sortierwechsel zwischen
Aufsteigend und Absteigend im Bereich M10: X100 erreichen. Wie muss ich die If-Abfrage gestalten?
If Not Intersect(Range("M10:X10"), Target) Is Nothing Then
If ? Then
wksDaten.Range("M10: X100).Sort Key1:=Cells(11, Target.Column), Order1:=xlAscending, Header:=xlYes
Else
wksDaten.Range("M10: X100).Sort Key1:=Cells(11, Target.Column), Order1:=xlDescending, Header:=xlYes
End if
End If
Für Antworten Dank im voraus
Klaus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abwechselndes Sortieren bei Doppelklick
17.12.2007 18:11:15
Peter
Hallo Klaus,
du musst dir in einer Public Variablen merken, was zuletzt sortiert wurde auf- oder absteigend.
Die Public Variable fragst du ab und setzt sie dann auf den aktuellen Wert "Auf" oder "Ab".
Ich meine, es gibt sogar irgendwelche Zahlenwerte, die anstelle von xlAscending/xlDescending verwendet werden können. Die weiß ich aber nicht.
Gruß Peter

AW: Abwechselndes Sortieren bei Doppelklick
17.12.2007 18:58:00
Daniel
Hi
das mit den Zahlenwerten kann man ganz einfach rausfinden, wenn im direktfenster "?xlascending" und "?xldescending" eingibt.
man sieht die Variablen haben die Werte 1 und 2
wenn man jetzt noch weiß, daß der boolsche Wert TRUE in Rechnungen mit -1 und der Wert FALSE mit 0 gewertet wird, kann man den Wechsel zwischen Auf- und Absteigender Sortierung ohne aufwendige IF-Abfragen hinbekommen:
1. eine allgemeine Public Variable als Boolan definieren (ausserhalb des Makros, underhalb von Option Explicit)

dim RF as boolean


2. im Makro dann:


RF = NOT(RF) '---Wechselt zwischen TRUE und FALSE, dh zwischen 0 und -1
wksDaten.Range("M10: X100).Sort Key1:=Cells(11, Target.Column), Order1:=2+RF, Header:=xlYes


Prinzipell würde ich es aber für sinnvoller halten, keine Globale Variable zu verwenden (Anwender kann ja auch mal von Hand sortieren, oder Makro stürzt mit Fehler ab, dann werden die Globalen Variablen auch zurückgesetzt), sondern einfach zu prüfuen, wie aktuell sortiert ist und entsprechend zu reagieren:
also:


dim RF as Boolean '--- innerhalb des Makros
RF =  wksDaten.Cells(11, Target.column) > wksDaten.cells(100, Target.column)
wksDaten.Range("M10: X100).Sort Key1:=Cells(11, Target.Column), Order1:=2+RF, Header:=xlYes


Gruß, Daniel

Anzeige
elegant
17.12.2007 19:17:52
Klaus
und auch Dir ein Danke,
sehr elegante Lösung ... da habe ich heute einiges gelernt ...
Klaus

AW: Abwechselndes Sortieren bei Doppelklick
17.12.2007 18:28:00
K.Rola
Hallo,
sollte so gehen(ungetestet):

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Static SOrder As Long
If SOrder = 0 Then
SOrder = 1
ElseIf SOrder = 1 Then
SOrder = 2
Else
SOrder = 1
End If
If Not Intersect(Range("M10:X10"), Target) Is Nothing Then
With wksDaten
.Range("M10:X100").Sort Key1:=.Cells(11, Target.Column), Order1:=SOrder, Header:=xlYes
End With
End If
Cancel = -1
End Sub


Gruß K.Rola

Anzeige
Dankeschön an beide!
17.12.2007 18:37:30
Klaus
Vielen Dank an Euch,
beide Lösungen funktionieren ...
Gruß
Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige