CALC: benutzerdef. Sortierliste

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: CALC: benutzerdef. Sortierliste

Re: CALC: benutzerdef. Sortierliste

von Karolus » Do, 22.03.2012 15:42

Hallo
Vergiss diese bescheuerte Formel und nimm:

Code: Alles auswählen

=VERGLEICH( F2  ; {1;"A";"Ä";"K";"P";"L";"erl";"--"} ;  0 )
Karo

Re: CALC: benutzerdef. Sortierliste

von TrueColor » Do, 22.03.2012 15:21

Hab jetzt zumindest eine vorübergehende Lösung für eine logische Sortierung gefunden: Mittels Hilfsspalte, in der die Kennzeichen in Zahlen übersetzt werden.

Code: Alles auswählen

=WENN(F2="O";1;"") & WENN(F2="A";2;"") & WENN(F2="Ä";3;"") & WENN(F2="K";4;"") & WENN(F2="P";5;"") & WENN(F2="L";6;"") & WENN(F2="erl";7;"") & WENN(F2="--";8;"")
Damit kann ich die Hilfsspalte einfach alphanumerisch sortieren. Nicht schön, ich stehe nicht auf Hilfsspalten, die keine Nutzdaten enthalten. Aber das tut es erstmal.

Edit: Danke, Mobbi, für die Idee!

Re: CALC: benutzerdef. Sortierliste

von TrueColor » Di, 20.03.2012 16:16

Ah, danke dir, so ist das um einiges besser!

Re: CALC: benutzerdef. Sortierliste

von komma4 » Di, 20.03.2012 08:10

Du definierst die Variable als STRING - nicht als Array von STRINGs

Code: Alles auswählen

DIM aSortList(7) AS STRING

Re: CALC: benutzerdef. Sortierliste

von TrueColor » Di, 20.03.2012 07:59

Hi Balu, hallo Forum

sorry für das lange Delay, bin erst jetzt wieder dazugekommen, mich damit zu beschäftigen.

> [STRING vs. VARIANT]

STRING fkt. doch nicht, die Objektvariable sei nicht belegt.

Code: Alles auswählen

SUB SortList

DIM aSortList AS STRING
aSortList = ARRAY("O", "A", "Ä", "K", "P", "L", "erl", "--")
FOR i = 0 to 7
  MSGBOX aSortList(i)
next

END SUB
Mit VARIANT hingegen fkt. das einwandfrei. Was ist nun der Unterschied zw. beiden?

Wer kann mir helfen, wie ich das Array nun verwenden kann, um damit eine benutzerdefinierte Sortierliste zu erzeugen, die im Dokument gespeichert ist?

Re: CALC: benutzerdef. Sortierliste

von balu » Fr, 09.03.2012 14:19

Hallo TrueColor,
Warum verwendest du VARIANT?
Ich hatte das Beispiel auch nur von wo anders her, und da stand das schon drin.
Natürlich kannst Du in deinem Falle alles auf String setzen. Es spricht nichts dagegen.

Und warum warnt Danneberger davor
Warum Dannenhöfer in diesem Zusammenhang vor Variant warnt, ist mir auf die schnelle auch nicht bewusst.

Ich denke, sowohl für dein Beispiel, als auch für meinen Anwendungsfall müsste STRING eigentlich reichen, oder?
Yep, so seh ich das auch.



Gruß
balu

Re: CALC: benutzerdef. Sortierliste

von TrueColor » Fr, 09.03.2012 13:23

balu hat geschrieben:ein ganz simples und einfaches ARRAY Beispiel zitiert. GuckstDu hier. Gleich der erste Code mit "Fred","Tom","Bill".
Hm... ok, sieht einfach und verständlich aus.

Warum verwendest du VARIANT? Und warum warnt Danneberger davor (das hab ich nicht rausgefunden, aber ich würde das so interpretieren, dass man in das Variant-Array alle möglichen Typen reinkippen kann, und dann bei der Verwendung höllisch aufpassen muss, was man damit macht)? Ich denke, sowohl für dein Beispiel, als auch für meinen Anwendungsfall müsste STRING eigentlich reichen, oder?

Grüße
TrueColor

Re: CALC: benutzerdef. Sortierliste

von TrueColor » Fr, 09.03.2012 12:54

Huhu Balu,

das war ja schnell, ich gucks mir mal an, danke!

Grüße
TrueColor

Re: CALC: benutzerdef. Sortierliste

von balu » Fr, 09.03.2012 12:52

Hallo TrueColor,

so rein zufälliger Weise hatte ich vor kurzem in einem Thread von mir ein ganz simples und einfaches ARRAY Beispiel zitiert. GuckstDu hier. Gleich der erste Code mit "Fred","Tom","Bill".

Nein, ich hab mir deine Datei nicht angeschaut. Aber vielleicht hilft dir das dortige Beispel trotzdem.



Gruß
balu

CALC: benutzerdef. Sortierliste

von TrueColor » Fr, 09.03.2012 12:40

CALC: benutzerdef. Sortierliste

Hallo,

ich habe ein von hier:
[gelöst] Calc: Sortier-Macros über Pulldown ausführen
weiterführendes Problem.

Jeder kennt sicher die vordefinierten Sortierlisten in Calc (Wochentage, Monate). Ich habe nun eine eigene benutzerdefinierte Liste (Statuskennungen eines fortlaufenden Prozesses): O, A, Ä, K, P, L, erl, --
Diese möchte ich nun aber nicht im System (Menü --> Optionen --> Calc --> Sortierlisten --> Liste kopieren aus...) erstellen, sondern direkt im Macro fest hinterlegen und anwenden.

(1) Wie kann ich die Liste im Marco hinterlegen?
Aus einem Zellbereich einlesen wäre ok. Die bessere Lösung wäre IMO aber, direkt zu definieren, da die Liste sich nicht ändert.

DIM ARRAY ... ?

(2) Wie kann ich das dann als Argument verwenden?
Der Kram vom Dispatcher

Code: Alles auswählen

[...]
args1(4).Name = "UserDefIndex"
args1(4).Value = 5
[...]
ist ja vermutlich nicht zu gebrauchen.

Vielen Dank!

Grüße
TrueColor
Dateianhänge
Projekte aktuell_v02_20120306.ods
(32.01 KiB) 55-mal heruntergeladen

Nach oben