Ein freundliches Hallo an alle!
Ich bin ein absoluter VBA-Neuling und hoffe, dass mein Problem von den Profis unter euch schnell gelöst werden kann.
Ich habe verschiedene Excel-Dateien erstellt. In der einen werden die Details zu Zwischenprodukten (Intermediates) in einer Art Karteikarte angelegt. Ein Tabellenblatt enthält dabei jeweils ein Karteikarte für ein Zwischenprodukt und ist nach der Kennnummer des Zwischenprodukts benannt. Dieses Tabellenblatt ist auch immer identisch aufgebaut. Das gleiche gibt es nochmal in einer anderen Datei für die Endprodukte (Assemblies).
Ich möchte eine zusammenfassende Liste erstellen, in der in zwei verschiedenen Tabellenblättern automatisch zu jeder Kennnummer die Zwischen-/Endprodukt-Beschreibung und -Kosten eingetragen werden. Dazu habe ich eine Funktion ("Try") programmiert, die automatisch den Pfad zusammensetzt, den man auch als externen Bezug direkt in die Zelle eintippen könnte. Die Funktion gibt den richtigen Wert zurück, erkennt es allerdings nicht als einen externen Bezug sondern als einfachen Text. In der Funktionszeile zeigt er natürlich auch "=Try()" an und nicht Pfad für den externen Bezug. Ich kann die Zelle kopieren und über die spezielle Wert-Einfügen-Methode den Wert einfügen. Dann steht der Pfad für den externen Bezug in der Zelle und in der Funktionszeile. Wenn ich dann per Doppelklick oder einfachen Klick in die Funktionszeile in die Zelle gehe und Enter drücke, holt Excel den Wert aus der End-/Zwischenprodukt-Datei. Ich möchte aber natürlich, dass dies sofort nach eintippen der Formel passiert.
Wichtig ist mir, dass die End-/Zwischenprodukt-Datei die Grundlage darstellt und der User nur in dieser Eingaben tätigt. Die Listen-Datei soll dann so automatisch wie möglich erstellt werden um Übertragungsfehler zu vermeiden. Für andere Ansätze als den externen Bezug bin ich natürlich offen.
Nachfolgend der hoffentlich nachvollziehbare Code. Die Tabellenblätter in den End-/Zwischenprodukt-Dateien sind jeweils mit der Kennnummer des End-/Zwischenprodukts benannt. Die Kennnummern stehen jeweils im Tabellenblatt der Listen-Datei in Spalte 1. Die End-/Zwischenprodukt-Beschreibung ist immer in Zelle B2 der jeweiligen Karteikarte, die Kosten stehen immer in Zelle D1.
Function Try()
Dim CompletePath As String
Dim TablePath As String, IntermediateDescriptionCell As String
x = Application.ThisCell.Row
y = Application.ThisCell.Column
If Cells(1, 1) = "Intermediate-Number" Then
TablePath = "'C:\Users\Patric\Desktop\Calculation Sheets\SMT Scharf Calculation\[SMT Scharf Calculation Intermediate Specification.xlsx]"
ElseIf Cells(1, 1) = "Assembly-Number" Then
TablePath = "'C:\Users\Patric\Desktop\Calculation Sheets\SMT Scharf Calculation\[SMT Scharf Calculation Assembly Specification.xlsx]"
End If
CodeNumber = Cells(x, 1)
If Cells(1, y) = "Intermediate-Description" Then
DescriptionCell = "'!$B$2"
ElseIf Cells(1, y) = "Cost" Then
DescriptionCell = "'!$D$1"
End If
CompletePath = "=" & TablePath & CodeNumber & DescriptionCell
Try = CompletePath
End Function
Ich hoffe jemand kann mir helfen. Ich suche nach einem Weg, dass Excel das Ergebnis meiner Funktion als externen Bezug erkennt und dementsprechend den Wert in der Zelle in der die Funktion steht aufruft.
Vielen Dank im Voraus,
99
|