Natascha [Gast] schrieb am 05.November.2005, 15:19:24 in der Kategorie web.coding
VBA: Select Case und If
Hallo Jörg.
Ich werde dein nettes Angebot jetzt gnadenlos ausnutzen.Also wir haben eine Aufgabe ohne Ergebnis bekommen und ich weiß nicht, ob ich den richtigen Weg gewählt habe. Mir kommt meine Programmierung irgendwie seltsam vor.Weißt du vielleicht einen anderen Weg ? Oder stimmt meine Rechnung vielleicht nicht?
Fußgesteuert mit While.
Hier die Aufgabe:
Inventur bei Aldi:
Waren sollen gezählt u. bewertet werden.Nach Eingabe der Menge u. des Einzelpreises soll der Gesamtwert ermittelt werden.Sollen weitere Artikel aufgenommen werden,so soll eine Gesamtsumme des Lagerwertes ermittelt werden.Die Inventur soll solange durchgefürht werden,bis der Anwender die Frage nach Aufnahme eines weiteren Artikels mit NEIN beantwortet. Ausgabe : Gesamtsumme in Euro
Verschärfte Version :
Es können Lebensmittel (FOOD) und Non - Food Artikel gezählt werden.Ergänzen Sie Ihre Schleife durch eine Abfrage nach Lebensmitteln (F) und nicht Lebensmitteln (NF)und ermitteln sie für beide Produktgruppen separate Gesamtsummen.
Erstellen sie jeweils ein Struktogramm in Strukted und codieren sie in VBA.
So hier ist mein Weg:
Sub Aldi ()
Dim Menge As Single
Dim Ep As Currency
Dim Gw As Currency
Dim waren As String
Dim wa As Long
Dim wp As Currency
Menge = InputBox(\"Menge?\", \"Menge\")
Ep = Inputbox(\"Einzelpreis?\", \"Einzelpreis\")
GS = Menge * Ep
Do
waren = InputBox(\"Sollen weitere Earen aufgenommen werden?\", \"Erweiterung?\")
\'Weil der Vorgang mit einer fußgesteuerten while -Schleife abgearbeitet werden muß ,muß man bei der Frage nach der Menge und dem Preis der zusätzlichen Waren 0 eingeben, wenn keine weiteren Waren aufgenommen werden sollen!!!
wa = InputBox(\"Menge der zusätzlichen Waren\", \"Anzahl zusätzlicher Waren\")
wp = InputBox(\"Preise der zusätzlichen Waren\", \"Einzelpreise der Waren\")
Lw = wa * Wp
Gs = Gs + Lw
Loop While waren <> \"nein\"
Inventur = MsgBox(Gesamtsumme in €:\" & GS, 13, \"Gesamtsumme\")
Nun meine verschärfte Version:
Sub Unterschied ()
Dim Mengf As Single
Dim Mengnf as Single
Dim pf as Currency
Dim pnf as Currency
Dim geswf as Curreny
Dim geswnf as Currency
Dim wf as Long
Dim wnf as Long
Dim f as Long
Dim nf as Long
Dim wpf as Currency
Dim wpnf as Currency
Dim Waren as String
Meng = inputbox(\"Menge Food ? \" , \"Menge Food\")
Mengnf = inputbox(\"Menge Non-Food?\", \"Menge Non-Food\")
Pf = inputbox(\"Preis Food?\", \"Preis Food \")
pnf = inputbox(\"Preis Non- Food ? \", \"Preis Non- Food\")
geswf = mengf * Pf
geswnf= mengnf * Pnf
Do
waren = inputbox(\"Sollen weitere Waren aufgenommen werden?\", \"Weitere Waren\")
\'weil der Vorgang mit einer fußgesteuerten While-schleife abgearbeitet werden muss, muss man bei der Frage nach der Menge und dem Preis der zusätzlichen Waren 0 eingeben, wenn keien weiteren Waren aufgenommen werden sollen !!!!!
f = inputbox(\"Menge der zusätzlichen Food-Waren?\", \"Anzahl zusätzlicher Food-Waren\")
nf = inputbox(\"Menge der zusätzlichen Non-Food-Waren?\", \"Anzahl zusätzlicher Non-Food-Waren\")
wpf = inputbox(\"Preis der zusätzlichen Food-Waren?\", \"Einzelpreis der zusätzlichen Food-Waren\")
wpnf = inputbox(\"Preis der zusätzlichen Non-Food-Waren?\", \" Einzelpreis der Non-Food-Waren\")
lagf = f * wpf
lagnf = wnf * nf
total f = lagf + geswf
total nf = lagnf + geswnf
loop while waren <> \"nein\"
Inv = msgbox(\"Gesamtsumme Food in €:\" & totalf & chr(10) & \"Gesamtsumme Non-Food in €: \" & totalnf ,13,\"Gesamtsumme\")
End Sub
Wäre nett, wenn du mal nachsehen könntest.
Vielen Dank im Vorraus
Mfg
Natascha