Seite 1 von 1

Select Case-Anweisung HILFE

Verfasst: Do, 10.01.2008 17:52
von Tom-ey

Code: Alles auswählen

sub Notenwerte
Select Case iAntwort
Case "1+" "1" "1-"
sText = "sehr gut"
Case "2+" "2" "2-"
sText = "gut"
Case "3+" "3" "3-"
sText = "befriedigend"
Case "4+" "4" 
sText = "ausreichend"
Case "5+" "5" "5-"
sText = "mangelhaft"
Case "6+" "6" "6-"
sText = "ungenuegend"
Case Else
sText = ""
End Select

End Sub

So schauts bisher unter OO BAsic in Calc aus...dies soll jedoch funktionieren für das Tabellenblatt "DATA" und die Felder B5:Z21

In den Feldern steht halt 4+ 6- 1 usw....wie mach ich es jedoch das da ausreichend ungenügend sehr gut steht? Geht das mit Case Anweisung? Und wenn ja wie?

Danke

Re: Select Case-Anweisung HILFE

Verfasst: Do, 10.01.2008 18:12
von Toxitom
Hey Tommy,

du könntest es zwar mit einer "Wenn-Formel" lösen (vielfach verschachtelt) aber ienfacher ist es, deine Basic-Routine als selbstdefinierte Funktion zu definierern - dann klappt das doch :-)
(Im Übrigen bezweifel ich, dass deine Sub wirklich funktioniert - die Case-Unterscheidungen benötigen nämlich einen Trenner ;-))
Maxchst du daraus eine benutzerdefinierte Funktion, so musst du Sie im Bereich "Meine Makros" und dort in der Bibliothek "Standard" ablegen - sonst wird sie nicht gefunden:

Code: Alles auswählen

function Notenwert(sString)
	Select Case sString
	Case "1+", "1", "1-"
	sText = "sehr gut"
	Case "2+", "2", "2-"
	sText = "gut"
	Case "3+", "3", "3-"
	sText = "befriedigend"
	Case "4+", "4"
	sText = "ausreichend"
	Case "5+", "5", "5-"
	sText = "mangelhaft"
	Case "6+", "6", "6-"
	sText = "ungenuegend"
	Case Else
	sText = ""
	End Select
	Notenwert = sText
End function
und wenn in Zelle B4 deine Zahl als String drin steht (z.B. 3+), dann kannst du die Formelin eine andere Zelle schreiben:
=NOTENWERT(B4) - und das Ergebnis ist "befriedigend".

Viele Grüße
Thomas

Re: Select Case-Anweisung HILFE

Verfasst: Do, 10.01.2008 20:41
von Tom-ey
Vielen Dank!!! Funktioniert super! :-) 8)

Re: Select Case-Anweisung HILFE

Verfasst: Sa, 24.05.2008 17:12
von Tom-ey
Hab noch mal eine Frage...:

Wo liegt der Fehler?

Code: Alles auswählen

function WERT(sString)
   Select Case sString
   Case "1"
   sText = "1"
   Case "2"
   sText = "1. und 2"
   End Select
   WERT = sText
End function

Re: Select Case-Anweisung HILFE

Verfasst: Sa, 24.05.2008 22:11
von turtle47
Hallo Tom,

"WERT" ist eine belegte Function.
OOoWiki hat geschrieben:WERT
Konvertiert eine Textzeichenkette in eine Zahl.
Dafür müsste es im Code es nicht

Code: Alles auswählen

=WERT(Text)
sondern normalerweise

Code: Alles auswählen

=VALUE(text)
lauten weil die Syntax normalerweise die englische schreibweise verlangt aber en wird wahrscheinlich doch irgendwie berücksichtigt!

Probiere mal folgendes:

Code: Alles auswählen

Sub Wert1_holen
sString = "2"
   Select Case sString
   Case "1"
   sText = "1"
   Case "2"
   sText = "1. und 2"
   End Select
   WERT1 = sText
   msgbox WERT1
End Sub
Und, funktioniert es?

Selbst wenn du es beabsichtigt hast

Code: Alles auswählen

sText = "1. und 2"
in eine Zahl zu verwandeln würde das am Inhalt scheitern.

Fazit: Nie belegte Funktionsbezeichnungen verwenden!

Schöne Grüsse.

Jürgen

Re: Select Case-Anweisung HILFE

Verfasst: So, 25.05.2008 10:11
von Karolus
Hallo
Nimm mal folgendes:

Code: Alles auswählen

function einszwei( xxx )
	Select Case xxx
	Case 1
	sText = 1
	Case 2
	sText = "1. und 2"
	End Select
	einszwei = sText
End function
Und schreib in Tabelle2.C4:
=EINSZWEI(Tabelle1.B10)

Gruß Karo

Re: Select Case-Anweisung HILFE

Verfasst: Sa, 07.06.2008 10:58
von Karolus

Code: Alles auswählen

WENN(Tabelle2.C4=1;1;WENN(Tabelle2.C4=2;"1. und 2";""))