Microsoft Excel

Herbers Excel/VBA-Archiv

Dem Ergebis Namen geben - Select Case

Betrifft: Dem Ergebis Namen geben - Select Case
von: Jessie
Geschrieben am: 15.04.2003 - 09:45:29

Hallöchen,
ich habe ein kleines Prob und hoffe Ihr könnt mir helfen ...


Ich habe folgenden Code:
Function XXX (Gewicht)
Dim a As Double, b As Integer
a = Fix(Gewicht / 100) + 1
b = a * 100

Select Case Gewicht
Case 1 To 500 = 15.3
Case 501 To 1000 = 12.8 * a
Case 1001 To 2000 = 11.5 * a
Case 2001 To 3000 = 10 * a
Case 3001 To 3500 = 8.2 * a
Case 3501 To 4000 = 230
Case 4001 To 5000 = 230
Case 5001 To 5500 = 250
Case 5501 To 6000 = 260
Case 6001 To 7000 = 260
Case 7001 To 9000 = 275

End Function

Ich würde jetzt gerne die 15.3; 12.8; 11.5 usw. einen "Namen" zuweisen, auf den ich mich für eine If...Then...Else-Anweisung beziehen kann.

Sinn des Ganzen ist folgender:
In der Zeile mit den 8.20 * a soll eigentlich noch folgendes passieren ...
Wenn das Ergebnis kleiner 212.20 soll das Ergbnis geschrieben werden, wenn's größer ist 212.20 ohne weitere Argumente ..

Jemand eine Idee, wie ich sowas umsetzen kann? Die If-Anweisung dahinter streikt bei mir :o(

Jessie

P.S. Da ich keine 2 Select case Felder habe, weiß ich auch gar nicht, ob das AddIn so funktionieren würde .. Normalerweise heißt es ja

Function XXX (Gewicht, Entfernung) - als Beispiel ...


  

Re: Crossposting...
von: Nike
Geschrieben am: 15.04.2003 - 10:01:13

Och Jessi,
bitte nicht Crossposten.
Den Hinweis hast du schon beim letzten Mal bekommen.
Siehe FAQ Stichwort Rundumschlag.
Jetzt warte doch mal was den Jungs bei Spotlight einfällt
und wenn denen nix einfällt (was ich nicht glaube)
dann frag hier nochmal.

Bye

Nike

  

Re: Dem Ergebis Namen geben - Select Case
von: Marc Voelker
Geschrieben am: 15.04.2003 - 10:13:03

lese die ergebnisse doch gleich als namen ein...

meinst du jetzt

case 1 to 500
ga=15.3

case 501 to 1000
gb=12.8

oder soll das ergebnis immer den selben namen haben?

case 1 to 500
g= 15.3 * a

case 501 to 1000
g= 12.8 * a

Gruß
Marc

  

Re: Crossposting...
von: Jessie
Geschrieben am: 15.04.2003 - 10:22:52

Für jedes Problem gibt es mehrere Lösungen - daher sehe ich das nicht als Problem, auf einer anderen Internetseite das gleiche Problem zu schildern.

Es für keinen verlorene Zeit, da ich immer jedes Beispiel checke und mir das "leichteste" raussuche, da es hier auch Kollegen erklären muss (und es soll irgendwie auch für Anfänger nachvollziehbar sein) - wie gesagt, ich sehe keinen Grund, warum ich das so nicht machen sollte ...

Jessie


  

Re: Dem Ergebis Namen geben - Select Case
von: Jessie
Geschrieben am: 15.04.2003 - 10:26:06

Kann ich dann z.B. direkt darunter schreiben

if g < 212.20 then ....?!

Sieht er dann "g" als Ergnis der "Formel" 8.2 * a?


  

Re: Crossposting...
von: Monika Weber
Geschrieben am: 15.04.2003 - 10:32:02

Du findest Crossposting also ok?
Dann bedeutet das, dass Du die Helfer, welche kostenlosen Support anbeiten hemmunglos ausnutzt? Das finde ich keine gute Einstellung!

---
Crossposting bedeutet, dass ein und dieselbe Frage in mehreren Foren und Newsgroups gleichzeitig gestellt wird. Ein solches Verhalten wird von den meisten Helfern nicht toleriert, denn damit stellst Du einerseits die Kompetenz der Helfer jedes einzelnen Forums und Newsgroup in Frage und bewirkst zudem, dass ein zig-faches an Stunden aufgewendet wird, um nur ein einziges Problem zu lösen, denn überall werden sich die Helfer daran setzen, eine Lösung für Dich zu finden. Das ist ganz klar ein Missbrauch an dem kostenlosen und freiwilligen Support, der hier angeboten wird. Such Dir eine einzige Newsgroup aus. Wenn Deine Frage klar und deutlich gestellt wurde, dann wirst Du ganz bestimmt innert kürzester Zeit eine Antwort erhalten. Sollte dies auch nach mehreren Tagen nicht der Fall sein, dann versuche bitte die Frage besser zu formulieren. Falls Du dennoch in einem zweiten Forum posten solltest, erwähne bitte, dass Du die Frage schon woanders gestellt hast, und dass Du es tust, weil keine Lösung gefunden werden konnte.
---

Es liebs Grüessli
Monika





  

Re: Dem Ergebis Namen geben - Select Case
von: Marc Voelker
Geschrieben am: 15.04.2003 - 10:36:37

jupp das geht, musst aber vorher g deklarieren...

z.B.

dim g as single oder so...

Gruß
Marc

  

Re: Crossposting...
von: Nike
Geschrieben am: 15.04.2003 - 10:39:02

Hi Jessie,

es ist halt eine Sache des Standpunktes.
Du möchtest so schnell wie möglich so viel wie möglich,
ohne Rücksicht auf Verluste.
Das durch dieses Verhalten die Bereitschaft Lösungen
anzubieten abnehmen könnte weil die Antworter erkennen,
dass bereits andere sich die Arbeit woanders gemacht haben
und man sich seine Mühe hätte sparen können, daran denkst
du wohl nicht. Nee, warum auch, bringt dich ja nicht weiter
in deiner Problemlösung ;-)

Wie gesagt ist wohl Ansichtssache.

Aber abgesehen davon, wenn es schon Spielregeln gibt,
sollte man halt versuchen sich drann zu halten...

Bye

Nike

  

Re: Crossposting...
von: Jessie
Geschrieben am: 15.04.2003 - 11:03:30

Um Eure Gemüter mal wieder zu beruhigen - ich werde mich an die "Speilregeln" halten.

Allerdings stehe ich mit diesem Projekt unter enormen Zeitdruck da die entsprechende Kollegin krank geworden ist. Ich denke im Notfall kann man auch mal Spielregeln "umgehen".

Abgesehn davon weiß ich beim besten Willen nicht, wann ich schonmal paralell gepostet haben soll - eigentlich ist Anlaufstelle für mich Herber ...

Nice Day
Jessie

  

Re: Crossposting...
von: Nike
Geschrieben am: 15.04.2003 - 11:16:09

Hi,
och ich dachte eigentlich bin ich noch recht entspannt,
kein großer Bedarf an Beruhigung nötig ;-)

Bei Notfällen is das halt so ne Sache
und wann wird aus der Ausnahme die Regel,
frei nach dem Motto:
"Der und der haben das aber auch getan
und warum darf ich jetzt nicht?"

Wenn du es schon tust, könntest du ja auch drauf
hinweisen, das du es tust, so könnte man
sich ja schon mal orientieren, ob schon Lösungsansätze
gepostet wurden und wenn ja, sich an denen orientieren...

DaPhazz hat z.B. immer noch nicht im Spotlight
die Ansätze die hier gepostet wurden mitgeteilt,
geschweige dann, das dein Problem bereits gelöst ist...

Wenn du jetzt Teilnehmer von Spotlight bist und dich nicht
auch hier mal umschaust und das Problem mal analysierst
wirst du dich schon etwas ärgern, wenn dir später einer
sagt, och das is schon längst gelöst, aber danke für deine
Mühe...

Also, in aller Entspanntheit, lass es oder weis ausdrücklich
drauf hin und ggf auch auf die Umstände warum du es so machst,
dann wird dir vielleicht auch bereitwilliger geholfen...

Ok, Predigt beendet ;-)

Bye

Nike

  

Re: Crossposting...
von: Jessie
Geschrieben am: 15.04.2003 - 11:41:37

Das Prob ist, mein Problem ist bisher noch nicht gelöst. Wenn ich "G" als Ergebnis zuweise, erhalte ich lauter "0" werte - bzw. es wird alles auf max 212.20 gesetzt.

Ich weiß also nicht, warum ich "drüben" schreiben, ist erledigtm wenns das nicht ist :o/

  

Re: Crossposting...
von: Nike
Geschrieben am: 15.04.2003 - 11:46:26

Hi,
wie ist denn nun Dein Stand der Dinge?
du hast die Funktion bei deinem ersten posting
ja nicht ganz gezeigt (xxx usw.)
was soll die Funktion denn zurück geben?
Und was wird an sie übergeben...
Naja, alles Fragen, die man nicht hätte,
wenn man alles in einem Thread hätte ;-)
Mir fehlt einfach auch ein bischen Erklärung
drum herum...

Bye

Nike

  

Re: Dem Ergebis Namen geben - Select Case
von: Marc Voelker
Geschrieben am: 15.04.2003 - 11:53:04

Hi Jessie
probiere es ma damit...



Function XXX(Gewicht)
Dim As Double, b As Integer, g As Single

a = Fix(Gewicht / 100) + 1
b = a * 100

Select Case Gewicht
    Case To 500 = 15.3
    g = 15.3
    Case 501 To 1000 = 12.8 * a
    g = 12.8 * a
    Case 1001 To 2000 = 11.5 * a
    g = 11.5 * a
    Case 2001 To 3000 = 10 * a
    g = 10 * a
    Case 3001 To 3500 = 8.2 * a
    g = 8.2 * a
    Case 3501 To 5000 = 230
    g = 230
    Case 5001 To 5500 = 250
    g = 250
    Case 5501 To 7000 = 260
    g = 260
    Case 7001 To 9000 = 275
    g = 275

End Function

If g < 212.2 Then
    Range("A1") = g
End If


     Code eingefügt mit Syntaxhighlighter 2.0

Gruß
Marc

  

Re: Dem Ergebis Namen geben - Select Case
von: Nike
Geschrieben am: 15.04.2003 - 12:14:52

Hi,
hier ist auch noch ein Lösungsansatz,
mal schaun für welchen sich Jesse also known as DaPhazz
dann entscheidet...

Bye

Nike

  

Ich glaub ich hab's
von: Jessie
Geschrieben am: 15.04.2003 - 12:17:28

Ich glaube ich habe aus nem Mix ne rechte Gute Lösung gefunden (Manchmal hat eben Vorteile in 2 Foren zu posten)

Function XXX(Gewicht, Sendungen)

Dim a As Double, b As Double, c As Double, d As Double
a = Gewicht

If a < 1000 Then
a = a + 49
b = a / 100
c = Round(b, 0)
d = c * 100

Else
a = a + 50
b = a / 100
c = Round(b, 0)
d = c * 100
End If

Select Case Gewicht
Case 1 To 30
Sendungen = 5.3 * Sendungen
Case 31 To 500
Sendungen = 2.8 * c
Case 501 To 1000
Sendungen = 1.5 * c
Case 1001 To 2000
Sendungen = 8 * c
Case 2001 To 3000
Sendungen = 12.2
Case 3001 To 3500
Sendungen = 30 * Sendungen
Case 3501 To 4000
Sendungen = 30 * Sendungen
Case 4001 To 5000
Sendungen = 50 * Sendungen
Case 5001 To 5500
Sendungen = 60 * Sendungen
Case 5501 To 6000
Sendungen = 60 * Sendungen
Case 6001 To 7000
Sendungen = 75 * Sendungen
Case Else
Sendungen = "Bitte Gewicht prüfen!"
End Select

Select Case Sendungen
Case Else
XXX = Sendungen
End Select

End Function

So scheint das zu funktionieren - hoffe mal, das ich keine Berechnungsfehler finde.

Dank für die Hilfe
Jessie


  

Re:Naja...
von: Nike
Geschrieben am: 15.04.2003 - 12:32:04

Hi,
natürlich hat es seine Vorteile in mehreren Foren zu posten,
aber halt auch seine Nachteile.
Es ist wohl müßig darüber zu diskutieren...

Bye

Nike

  

Re: Crossposting...
von: Marcus
Geschrieben am: 15.04.2003 - 19:35:33

Hallo Monika, Hallo Nike

Kennt Ihr das Sprichwort?

Jeder ist sich selbst am nächsten.

Und das kann man hier mal wieder lesen. Beschäftigen sich viele Leute mit meinem Problem, so geht es mir gut - das Schlimme ist dabei noch, das die, die über Laichen gehen dann auch noch das Lob ein heimsen. Schätze Ihr werdet diese Leute nie überzeugen können. Sie sind wie sie sind.

Gruß an Euch beide

Marcus

Die neue Excel-Homepage für Anfänger

 

Beiträge aus den Excel-Beispielen zum Thema "Dem Ergebis Namen geben - Select Case"