online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Norbert-VBA vom 18.01.2020, 16:27 Options

Excel VBA - Berechnung von Preisen

Hallo Forum !

Ich wünsche einen guten Tag allerseits und hoffe, dass mir jemand helfen kann.

Folgendes Problem, wo ich nicht so richtig weiter komme.

Ich benutze zwei Exceldateien.
Eine Preisliste.xls und eine Kalkulation.xls.
In der Kalkulation.xls habe ich eine Userform1 erzeugt, in welcher sich 3 Comboboxen und 2 Textboxen befinden. (Combobox 1,2 und 3 sowie Textbox 1 und 2)

Die Combobox1 fülle ich mit Produktbezeichnungen aus der geschlossenen Preisliste.xls. Diese Produktbezeichnungen stehen in Spalte A in den Zeilen 5 bis 15.
Das Füllen funktioniert mit diesem Code:

For i = 5 To 15
ActiveSheet.Range("A1").Formula = _
"='C:\Programme\Preislisten\[Preisliste.xls]Tabelle1'!A" & i
Userform1.Combobox1.AddItem (Range("A1").Value)
Next i
Range("A1").Value = ""


Wenn ich in der Combobox1 eine Produktbezeichnung ausgewählt habe, erscheint in der Textbox2 der dazugehörende Preis. Dieser Preis befindet sich in der geschlossenen Preisliste.xls in der Spalte B in den Zeilen 5 – 15. Das heißt rechts neben der Produktbezeichnung befindet sich immer der dazugehörende Preis.
Das funktioniert mit diesem Code:



ActiveSheet.Range("A1").Formula = _
"='C:\Programme\Preislisten\[Preisliste.xls]Tabelle1'!B" & Me.Combobox1.ListIndex + 5
Me.Textbox1.Text = Range("a1").Value
Range("A1") = ""


Soweit so gut.
Nun fülle ich die Combobox2 und die Combobox3 auch mit Bezeichnungen aus der geschlossenen Preisliste.xls.
Die Bezeichnungen für die Combobox2 stehen in A20-A30 (z.B. M10, M12, M14 usw.) .
Die Bezeichnungen für die Combobox3 stehen in A40-A50 (z.B. 30 mm, 40 mm, 50 mm usw.)

Zusätzlich gibt es eine Art Tabelle im Bereich A60:K70. In der Kopfzeile, also in B60-K60 stehen die Bezeichnungen (z.B. M10, M12, M14 usw.) und in der Spalte, also in A61-A70, stehen die dazugehörenden Längen (z.B. 30 mm, 40 mm, 50 mm usw.).
In der Mitte, also B61-K70, stehen die dazugehörenden Preise.
Zum Beispiel: Bei der Bezeichnung „M16“ und 60 mm Länge steht in der Zelle E64 der Preis von 0,78 EUR.
Das heißt der Preis ist von zwei Bedingungen abhängig, vom der Gewindegröße und der Länge.

Jetzt möchte ich gerne, (ich befinde mich in der Kalkulation.xls in Userform1) wenn ich in der Combobox2 die Gewindegröße auswähle und in der Combobox3 die Länge auswähle, dass in der Textbox2 der entsprechende Preis angezeigt wird.
Das alles bei geschlossener Preisliste.xls.

Geht das ?

Puhhh, ich hoffe, ich habe das jetzt so einigermaßen beschrieben, dass man das verstehen kann.
Wäre sehr nett, wenn da jemand einen Tipp hätte.

Vielen Dank im Voraus.

Viele Grüße

Norbert


Antwort schreiben

Antwort 1 von coros vom 19.01.2020, 06:01 Options

Hallo Norbert,

mal eine kurze Frage, warum muss die Preislisten.xls geschlossen sein? Wenn man diese öffnen würde, könnte man das Problem bedeutend einfacher lösen. Wenn es Dir darum geht, dass man die geöffnete Preislistendateí nicht sieht, schau Dir mal die Funktion

[b]GetObject ("Pfad:\Dateiname.xls")[/b]

an. Damit kann man eine Exceldatei im Hintergrund öffnen, aber trotzdem darauf zugreifen als ob Sie sichtbar wäre. Dann ist ein Berechnen ein Kinderspiel.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Norbert-VBA vom 19.01.2020, 16:54 Options

Hallo Oliver,

Danke für die Antwort.

Ich schau mir die Funktion mal an und melde mich dann nochmal hier, ob es funktioniert hat.

Gruß

Norbert

Ähnliche Themen

Excel VBA: Berechnung ausschalten?
Rolf___  06.08.2007 - 137 Hits - 2 Antworten

[Excel] Formeln mit VBA nutzen
Björn  07.10.2007 - 206 Hits - 2 Antworten

Schnellreferenz Excel VBA
Joshuan  23.05.2008 - 219 Hits - 3 Antworten

VBA-Excel
mentosbasi  28.05.2008 - 350 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026