Thema Datum  Von Nutzer Rating
Antwort
Rot Dynamische Preiskalkulation (Make or Buy)
17.06.2016 23:42:32 Cyntho
NotSolved

Ansicht des Beitrags:
Von:
Cyntho
Datum:
17.06.2016 23:42:32
Views:
975
Rating: Antwort:
  Ja
Thema:
Dynamische Preiskalkulation (Make or Buy)

Hallo zusammen,

ich arbeite derzeit an einer kleinen Preiskalkulation für ca. 100 Produkte. Dazu habe ich eine Preisliste vorliegen, in der wichtige Daten zum jeweiligen Produkt und den Einzelteilen gespeichert sind.

Aufbau wie folgt: [Name] - [Preis] - [...] etc

Wichtig sind hier erstmal nur die ersten beiden Spalten. Die jeweiligen Endprodukte sind ebenfalls in der Preisliste vorhanden (mit dem Einkaufspreis bei Fremdbezug). Ziel soll es sein, auf anderen Tabellenblättern eine Stückliste für die fertigen Produkte zu erstellen und die Kosten für die Eigenfertigung dem Fremdbezug gegenüber zu stellen.

Mein Problem liegt nun darin, dass viele verschiedene Endprodukte aus den Selben Einzelteilen bestehen und ich nicht jedes Mal über einen SVerweis suchen möchte. Gewünscht ist beispielsweise die Eingabe von =getPrice("Hier Produktname") (oder: Verweis auf Zelle, in der der Produktname steht), was zur Ausgabe des jeweiligen Preises führt.

Ich habe bisher folgendes erstellt:

Im Modul "StringOperations":

Option Compare Text

Public Function equalsIgnoreCase(ByVal stringA as String, ByVal stringB as String) as Boolean
if (a = b ) Then
equalsIgnoreCase = True
else
equalsIgnoreCase = False
End If
End Function

 

Im Modul "PriceListApplication":

Public Function getPrice(ByVal item as String) as String
Application.Volatile
On Error GoTo fin

Dim retVal as String: retVal = "N/A"

' Iterate over cells to find given item
For Each datarow In Range("PriceCalculation!Prices").Rows
If StringOperations.equalsIgnoreCase(datarow.Columns(1).Value, item) = True Then
retVal = datarow.Columns(2).Value
Exit For
Next datarow

fin:
getPrice = retVal
End Function

 

Es funktioniert bisher sehr gut, allerdings wird durch

Application.Volatile

die Berechnung komplett neu durchgeführt, wenn irgendeine Zelle verändert wird, was meiner Meinung nach bei vielen Datensätzen eher ungeeignet ist.

 

 

Nun meine Frage:

Gibt es eine optimalere Lösung für mein Problem? Eine 'bessere' Lösung wäre das Verwenden von sverweisen, allerdings soll die Kalkulation später auch von Anderen ergänzt und bearbeitet werden, die sich nicht unbedingt mit Excel etc auskennen werden.

 

Vielen Dank schonmal im Voraus

Cyntho


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
Rot Dynamische Preiskalkulation (Make or Buy)
17.06.2016 23:42:32 Cyntho
NotSolved