Thema Datum  Von Nutzer Rating
Antwort
29.06.2014 18:34:50 Gast55361
NotSolved
Blau Preisberechnung
29.06.2014 19:08:09 Gast31067
NotSolved
30.06.2014 11:04:18 Gast34140
NotSolved

Ansicht des Beitrags:
Von:
Gast31067
Datum:
29.06.2014 19:08:09
Views:
794
Rating: Antwort:
  Ja
Thema:
Preisberechnung

Wenn die immer 0 anzeigen, dann muss zwangsläufig bei

curPreisEK = intAnzahl * intGroesse * curFarbe * 0.052

curPreisEK immer 0 ergeben.

Folglich muss auf der rechten Seite mindestens eine der Variablen stehts 0 sein.

=> Die Frage lautet also nun: Warum ist das so - Zellenwerte ok?

In Indiz wäre, dass diese Werte erst nach erstmaligem Klick mit einem (gültigen) Wert initialisiert werden.

 

Noch etwas:

Public intGroesse As Integer


'Public Function Groesse(ByVal intGroesse As Integer) As Integer
'
'  Select Case Groesse
'
'    Case btnStdQuer.Value = True
'    intGroesse = [J10]
'
'    Case btnStdHoch.Value = True
'    intGroesse = [J10]
'
'    Case btnGrossQuer.Value = True
'    intGroesse = [J11]
'
'    Case btnGrossHoch.Value = True
'    intGroesse = [J11]
'
'  End Select
'End Function

1) Select Groesse hat immer automatisch den Fall 0.

Die Verwendung ist dort völlig falsch (mir ist schleierhaft was du da beabsichtigst). Es müsste wohl ehern Select intGroesse lauten und in den einzelnen Fällen dann z.B. Groesse = [J11]

 

2) Du glaubst vielleicht du änderst in diesem Fall die als Public deklarierte Variable intGroesse in Wahrheit ändest du aber der Wert des Parameters intGroesse (also dem Teil mit ByVal davor). Dadurch das diese beide Angaben gleich heißen, beziehst du dich automatisch auf die nächstliegende Angabe (also die innerhalb der aktuellen Funktion) und das ist nun halt der Parameter und nicht die globale Variable. Dazu kommt das der Parameter ByVal übergeben wird und damit eine Änderung des Parameters nach außen hin keinerlei Wirkung hat.

Du solltest, wenn du schon globale Variablen verwendest, diesen einen Präfix geben um genau diese Art von Problem zu vermeiden.

(Warum die Public verwendest verstehe ich zudem auch nicht, dadurch könnte außerhalb der Form an jeder Stelle dieser Wert "versehentlich" manipuliert werden und das ist nie gut).

Üblich ist z.B. für modulare Variablen ein m, für globale ein g (der Unterschtrich ist Ansichtssache):

Private m_intGroesse As Integer

 

3)

Public curFarbe, curPreisEK, curPreis1, curPreis2, curPreis3 As Currency

Nur curPreis3 ist von Datentyp her Currency, alle andere davor sind vom Datentyp Variant (typischer Anfängerfehler). ;)

 

4) Die Schreibweise w.z.b. [J11] ist veraltet und zudem etwas langsamer als die übliche Variante - Range("J11").

 

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
29.06.2014 18:34:50 Gast55361
NotSolved
Blau Preisberechnung
29.06.2014 19:08:09 Gast31067
NotSolved
30.06.2014 11:04:18 Gast34140
NotSolved