2.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hey,

ich schreibe für meine Bachelorarbeit (Berechnung des Versagens von Stahlbauteilen unter Brandbeanspruchung) eine Excelberechnung.

Diese ganze Kiste besteht aus 2 grundlegenden Berechnungsabläufen:
Der erste errechnet in 5-Sekundenintervallen über 90min die durchschnittl. Kerntemperatur des Stahlbauteils.

Sprich: 1080mal eine Formel, die sich mittels sverweisen und wenndannbedingungen mit zunehmender Temperatur neue Stahleigenschaften holt.

Der zweite Ablauf schaut nach ob das Bauteil einer einmal festgelegten Belastung stand hält (Tragsicherheitsnachweis(TSN)).

Dass Problem ist, dass mit zunehmender Temperatur der Stahl schlechtere Eigenschaften bekommt, der Nachweis also einmal nach jedem 5-Sekunden-Intervall geführt werden muss.

Den kompletten TSN in einer Monsterformel in die Temperaturerhöhungsformel zu setzen ist letzten Endes zu komplex, da auch der mit etlichen Funktionen vollgeballert ist.

Ich bin jetzt also auf der Suche nach einer Funktion/Möglichkeit, die nach meinem 5Sekundenintervall die nebenstehende abgeminderte Baustofffestigkeit nimmt, in den Berechnungsbaum vom TSN auf dem nächsten Tabellenblatt setzt, den durch rechnet und mir dann das Ergebnis neben die Temperaturerhöhungsformel/Baustoffestigkeit setzt.

Hat jemand ne Idee wie man das anstellen könnt? Kenn mich leider nicht wirklich mit VBA aus, sodass ich da irgendwas cooles programmieren könnt. Vermute fast dass das irgendwie ne "Schleife" oder n "Makro" oder so wäre ;o) ?

Für Antworten und Ideen wäre Ich sehr dankbar.

Viele Grüße

alex

[*]
[sup]*Threadedit* 02.05.2011, 12:27:13
Admininfo: Führe Threads bitte nicht fort, indem du weitere eröffnest, und vermeide Mehrfachanfragen! Die Datenbank und User werden es dir danken. Siehe FAQ 2, #3.
[/sup]

9 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Alex,

da wir hier nicht alle eine Bachelorarbeit schreiben und Deine Angaben unzureichend sind, wäre es schön, wenn Du eine Beispieldatei einstellst, in der Du dann genau erklären kannst, wo es klemmt.

Die Datei könntest Du hier hochladen und den Download-Link hier posten

Gruß
Rainer
0 Punkte
Beantwortet von
Hey Rainer,

danke für deine Antwort. Konnte die letzten Tage nicht antworten, sorry!

Ich hab mal ne vereinfachte Version gebastelt und hier gepostet: http://www.file-upload.net/download-3395587/Beispiel.xlsx.html

Also:

Aus der Temperaturberechnung entwickelt sich ein, mit jedem Berechnungsintervall, schlechter werdender Abminderungsbeiwert [%] für den Baustoff (hab ich mal gelb markiert).

Dann habe ich unter Nachweis ein Bauteil, das im Ausgangszustand 100kg aushält und 50kg Belastung bekommt.

1. Intervall in Temperaturberechnung:
Der Abminderungsbeiwert (gelb) aus der Temperaturberechnung, im ersten Intervall (Nr. 1) 45%, soll nun in den Nachweis übertragen werden (gelb). Der Nachweis wird einmal geführt und aus der Einwirkung 50kg zum Widerstand 100kg mit Abminderung 45% kommt eine Ausnutzung von 91%.
Diese Ausnutzung im Blatt Nachweis (blau markiert) soll nun in das Blatt Temperatur gegeben werden und hinter dem ersten Intervall (blau) platziert werden.

2. Intervall in Temperaturberechnung:
Abminderungsbeiwert zum Nachweis (gelb), Nachweis durch rechnen, Ausnutzungsgrad nach Temperaturberechnung(blau)

3. Intervall
...

Den Nachweis in die Temperaturtabelle einzufügen ist zu umfangreich: Hab 12 "Beiwerte" und 4 "Ausnutzungswerte" mit jeweils nem irren Ratten*Z* aus wenndanns, sverweisen zu Profiltabellen und wenndanntrends zum interpolieren aus weiteren Tabellen

Hoffe dass das irgendwie ne ganz einfache Lösung gibt und ich einfach nur aufm Schlauch steh...

Noch ein sonniges Wochenende und nen schönen Tanz in Mai.

VG

alex
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

vom Grundsatz ist mir klar was du willst. Deine werte aus Tebelle Temperaturberechnung sollen immer aus die Formel im Nachweis zugreifen und das mit den jeweils geänderten Werten.

Ist aus meiner sicht nur mit Formeln zu machen da du von verschiedenen Zeilen mit unterschiedlichen Ausgangswerten nicht gleichzeitig zugreifen kannst.

Eine Lösung habe ich so nicht zur Verfügung, aber geht wahrscheinlich nur mit einem Makro.

Gruß

Helmut
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Alex,

teste mal, ob ich Dein Problem richtig geschnallt habe.
Du sartest das Makro und gibst in der folgenden InputBox die Anfangstemperatur ein, alles andere läuft automatisch ab.

Beispieldatei

Gruß
Rainer
0 Punkte
Beantwortet von
Hey Helmut,

das mit dem makro dacht ich halt auch schon. Ein Kollege meinte dass man das einmal mit makro aufzeichnen machen könnte, aber kann man dann nachher das Makro in die Temperaturberechnungszeile so einfügen, dass man es dort einerseits wie eine normale Formel einfach "nach unten zieht", sprich nen verändernden Bezug definiert, und andererseits im Nachweis die Zellen wie mit dem $ - Zeichen festsetzt?

Wenn ich das mit dem Makro richtig verstanden habe, müsste ich das dann 1080 mal aufzeichnen. Wenn man pro aufzeichnung 3 min ansetzt bin ich da 2,25 Tage durchgängig mit beschäftigt!? Kann ja auch nicht die beste Lösung sein - vorallem wenn irgendwann in der Korrektur raus kommt, dass ich n Fehler in meinen Tabellen hab.

Viele Grüße

alex
0 Punkte
Beantwortet von
Hey Rainer,

scheint richtig zu sein :O) !

Hast Du das zu Fuss programmiert oder mit nem Hilfsmittel (aufzeichnung oder ähnliches) Werd mir das mal genau zu Gemüte führen.

Haben einmal im 3.Semester was mit VBA gemacht, is also schon ne ordentliche Weile her.

Viele Grüße und danke

alex
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Alex,

das Makro ist geschrieben.
Hierbei ist der Makrorecorder nutzlos, da eine Schleife gebraucht wird.

Gruß
Rainer
0 Punkte
Beantwortet von
Hey Rainer,

ich hab jetzt auch nochmal n beispiel probiert und hinbekommen, brauch das jetzt nur noch auf die worksheets anwenden.

Ich brauchte einfach nur ne Schleife und den Datenübertrag - genial:o).

Vielen vielen Dank für die Hilfe!!!

Gruß

alex



Sub Datenübertrag()
Dim rngC As Range, intI As Integer
Application.ScreenUpdating = False
For intI = 7 To 26
Cells(10, 10).Value = Cells(intI, 2).Value
Cells(11, 10).Value = Cells(intI, 3).Value
Cells(intI, 4).Value = Cells(9, 9).Value
Next
Application.ScreenUpdating = True
End Sub
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Alex,

ohne zugehörige Arbeitsmappe kann ich Dir da nicht helfen.

Helfer kennen sich zwar einigermaßen in Excel aus, aber Hellsehen können sie nicht.

Gruß
Rainer
...