Seite 1 von 1
CALC: benutzerdef. Sortierliste
Verfasst: Fr, 09.03.2012 12:40
von TrueColor
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
Re: CALC: benutzerdef. Sortierliste
Verfasst: Fr, 09.03.2012 12:52
von balu
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
Re: CALC: benutzerdef. Sortierliste
Verfasst: Fr, 09.03.2012 12:54
von TrueColor
Huhu Balu,
das war ja schnell, ich gucks mir mal an, danke!
Grüße
TrueColor
Re: CALC: benutzerdef. Sortierliste
Verfasst: Fr, 09.03.2012 13:23
von TrueColor
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
Verfasst: Fr, 09.03.2012 14:19
von balu
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
Verfasst: Di, 20.03.2012 07:59
von TrueColor
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
Verfasst: Di, 20.03.2012 08:10
von komma4
Du definierst die Variable als STRING - nicht als Array von STRINGs
Re: CALC: benutzerdef. Sortierliste
Verfasst: Di, 20.03.2012 16:16
von TrueColor
Ah, danke dir, so ist das um einiges besser!
Re: CALC: benutzerdef. Sortierliste
Verfasst: Do, 22.03.2012 15:21
von TrueColor
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
Verfasst: Do, 22.03.2012 15:42
von Karolus
Hallo
Vergiss diese bescheuerte Formel und nimm:
Code: Alles auswählen
=VERGLEICH( F2 ; {1;"A";"Ä";"K";"P";"L";"erl";"--"} ; 0 )
Karo