Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1088to1092
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA Werte werden nicht übergeben
Markus
Hallo, mein Name ist Markus und ich stehe vor folgendem Problem:
Ich habe in VBA ein Programm geschrieben, welches ich der Größe halber mit Unterprogrammen versehen wollte.
Das Programm, wie auch die Unterprogramme liegen auf Tabellenblatt 1.
Wenn das Programm per Call in die Unterprogramme springt, werden die zuvor errechnetten Werte nicht übernommen.
Mir ist bewußt, dass es so etwas wie function, byval etc. gibt, ich habe aber keine Ahnung, ob ich diese verwenden muss (bin nicht so der Spezialist in VBA).
Hier mein Programmcode:

Private Sub CommandButton2_Click()
'Aufruf der Unterprogramme
Call Befeuchtung
Call Einspeisung_Click
Call WP_Click
'Berechnung des k*A-Werts
'Anfangsbedingungen einlesen
'Rückwärmzahl in %
WRZproz = Range("C14").Value
'Rückwärmzahl in %/100
WRZ = WRZproz / 100
'Außenluftvolumenstrom
Vaul = Range("C17").Value
'Bedingung: Abluftvolumenstrom = Außenluftvolumenstrom
Vabl = Vaul
'spez. Wärmekapazität der Luft
cpluft = Range("C22").Value
'spez. Wärmekapazität der Sole
cpsole = Range("C23").Value
'Dichte der Luft
dluft = Range("C21").Value
'Wärmekapazitätsstrom der Außenluft
Waul = Vaul * cpluft * dluft / 3.6
'Wärmekapazitätsstrom der Abluft
Wabl = Vabl * cpluft * dluft / 3.6
'Berechnung des optimalen Wärmekapazitätsstrom des Umlaufstroms
Wopt = (Wabl * Waul * ((Waul / Wabl) + 1)) / (Waul * (Waul / Wabl) + Wabl)
'Massenstrom Außenluft
maul = 3.6 * Waul / cpluft
'Massenstrom Abluft
mabl = 3.6 * Wabl / cpluft
'optimaler Massenstrom des Umlaufstroms
mopt = 3.6 * Wopt / cpsole
'Übertragungsgrad der Abluft/Außenluft- Wärmetauscher
Fi = 2 * WRZ / (WRZ + 1)
'Einlesen von Außenluft- und Fortlufttemperatur
Tabl = Range("S3").Value
Taul = Range("C15").Value
'Abfrage nach gleichen Außen- und Ablufttemperaturen
If Tabl = Taul Then
'Für die Ablufttemperatur wird ein belibiger Wert gewählt, der ungleich der Auß _
enlufttemperatur ist
Tabl = Taul - 1
Else
Tabl = Range("S3").Value
End If
'Einlesen der Minimaltemperatur der Fortluft (Vereisungsschutz)
Tfolsoll = Range("C24").Value
Twt11einsoll = Tfolsoll
'Einlesen der gewünschten Zulufttemperatur
Tzulsoll = Range("C25").Value
'Berechnen von Zulufttemperatur unter Verwendung der Rückwärmezahl
Tzul = WRZ * (Tabl - Taul) + Taul
'Berechnen von Fortluftemperatur unter Verwendung der Rückwärmezahl
Tfol = Tabl - (WRZ * (Tabl - Taul))
'Berechnung der Sole-Eintrittstemperatur im Ablufttauscher
Twt11ein = Tabl - ((Tabl - Tfol) / Fi)
'Berechnung der Sole-Austrittstemperatur im Ablufttauscher
Twt11aus = Twt11ein - ((Tfol - Tabl) * Wabl / Wopt)
'Berechnung der Sole-Eintrittstemperatur im Außenlufttauscher
Twt22ein = Taul - ((Taul - Tzul) / Fi)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22aus = Twt22ein - ((Tzul - Taul) * Waul / Wopt)
'Berechnung der übertragenen Leistung am Außenlufttauscher
Qaul = (Tzul - Taul) * Waul
'Berechnung der übertragenen Leistung am Ablufttauscher
Qabl = (Tabl - Tfol) * Wabl
'Berechnung der logarythmischen Temperaturdifferenz
'Prüfung welches Temperaturdifferenz größer und kleiner ist
'If Abs(Taul - Twt22aus) > (Tzul - Twt22ein) Then
'dtg = Taul - Twt22aus
'dtk = Tzul - Twt22ein
'   Else
'  dtg = Tzul - Twt22ein
' dtk = Taul - Twt22aus
'End If
dtm22 = Twt22aus - Taul
'If Abs(Tabl - Twt11aus) > (Tfol - Twt11ein) Then
'dtg = Tabl - Twt11aus
'dtk = Tfol - Twt11ein
'   Else
'  dtg = Tfol - Twt11ein
' dtk = Tabl - Twt11aus
'End If
dtm11 = Twt11aus - Tabl
'Berechnung des effektiven k*A Wertes für den Außenlufttauscher
kA22 = Abs(Qaul / dtm22)
'Berechnung des effektiven k*A Wertes für den Ablufttauscher
kA11 = Abs(Qabl / dtm11)
'Einlesen der Ablufttemperatur
Tabl = Range("S3").Value
'Datenausgabe
Range("N14").Value = kA22
Vabl = Range("C20").Value
Wabl = Vabl * cpluft * dluft / 3.6
maulsole = Waul / cpsole
mablsole = Wabl / cpsole
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _
_
_
_
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Beginn der Simulation%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _
_
_
_
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _
_
_
_
'Berechnung ohne WRG
If Taul > Tzulsoll Then
Qheiz = 0
Qkühl = Waul * (Taul - Tzulsoll)
Else
Qkühl = 0
Qheiz = Waul * (Tzulsoll - Taul)
End If
Range("S14").Value = Qheiz
Range("S15").Value = Qkühl
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _
_
_
_
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _
_
_
_
'Berechnung mit WRG
'Anzahl der Schleifendurchläufe
N = 20
'Befeuchterstatus auf Null setzen
BEF = 0
'Beimischstatus auf Null setzen
Beimischung = 0
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _
_
_
_
'Berechnung der WRG ohne eingespeiste Energie in den Solekreislauf
' Abfrage: Wenn keine Einspeisung, dann...
Select Case Qzus
Case 0
'es wird keine Energie eingespeist
Qeinsp = 0
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ _
_
_
_
'Berechnung ohne Frostschutzschaltung
'/////////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage, ob die minimale Fortlufttemperatur unterschritten wird
If Twt11ein > Twt11einsoll Then
Call Berechnung_ohne_Einspeisung_ohne_Frostschutz
Range("A26").Value = "ohne Einspeisung, ohne Frostschutz"
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage ob Beimischung sinnvoll
If Taul  Tzulsoll And WP.Value = False Then
Beimischung = 1
Call Berechnung_Beimischung
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage ob Befeuchtungs sinnvoll
If Taul > Tzulsoll And Abluftbefeuchter.Value = True Then
BEF = 1
Tabl = Tablbef
Call Berechnung_ohne_Einspeisung_ohne_Frostschutz
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage, ob Befeuchtung die Zulufttemperatur zu weit senkt
Select Case BEF
Case 1
If Tzul  Tzulsoll And WP.Value = False Then
Beimischung = 1
Call Berechnung_Beimischung
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage ob Befeuchtungs sinnvoll
If Taul > Tzulsoll And Abluftbefeuchter.Value = True Then
BEF = 1
Tabl = Tablbef
Call Berechnung_ohne_Einspeisung_mit_Frostschutz
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage, ob Befeuchtung die Zulufttemperatur zu weit senkt
Select Case BEF
Case 1
If Tzul  Tzulsoll And WP.Value = False Then
Beimischung = 1
Call Berechnung_Beimischung
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage ob Befeuchtungs sinnvoll
If Taul > Tzulsoll And Abluftbefeuchter.Value = True Then
BEF = 1
Tabl = Tablbef
Call Berechnung_mit_Einspeisung_mit_Frostschutz
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage, ob Befeuchtung die Zulufttemperatur zu weit senkt
Select Case BEF
Case 1
If Tzul  Tzulsoll And WP.Value = False Then
Beimischung = 1
Call Berechnung_Beimischung
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage ob Befeuchtungs sinnvoll
If Taul > Tzulsoll And Abluftbefeuchter.Value = True Then
BEF = 1
Tabl = Tablbef
Call Berechnung_mit_Einspeisung_ohne_Frostschutz
Else
End If
'/////////////////////////////////////////////////////////////////////////////// _
_
_
_
'Abfrage, ob Befeuchtung die Zulufttemperatur zu weit senkt
Select Case BEF
Case 1
If Tzul 

Private Sub Datenausgabe_ohne_Beimischung()
Range("N3").Value = Tabl
Range("C3").Value = Tfol
Range("N15").Value = Qeinsp
Range("N36").Value = Tzul
Range("K31").Value = Twt22ein
Range("F30").Value = Twt22aus
Range("F11").Value = Twt11ein
Range("K12").Value = Twt11aus
Range("F18").Value = mteils1
Range("G45").Value = mteils2
Range("G21").Value = mteils3
Range("K33").Value = mteils4
Range("K24").Value = Twt33ein
Range("G2").Value = mablsole
Range("G35").Value = maulsole
Cells(60, 1).Value = "Tzul"
Cells(60, 1 + i).Value = Tzul
Cells(61, 1).Value = "Tfol"
Cells(61, 1 + i).Value = Tfol
Cells(62, 1).Value = "Twt22ein"
Cells(62, 1 + i).Value = Twt22ein
Cells(63, 1).Value = "Twt22aus"
Cells(63, 1 + i).Value = Twt22aus
Cells(64, 1).Value = "Twt11ein"
Cells(64, 1 + i).Value = Twt11ein
Cells(65, 1).Value = "Twt11aus"
Cells(65, 1 + i).Value = Twt11aus
Cells(66, 1).Value = "Qaul"
Cells(66, 1 + i).Value = Qaul
Cells(67, 1).Value = "Qabl"
Cells(67, 1 + i).Value = Qabl
Cells(68, 1).Value = "mteils1"
Cells(68, 1 + i).Value = mteils1
Cells(69, 1).Value = "mteils2"
Cells(69, 1 + i).Value = mteils2
Cells(70, 1).Value = "mteils3"
Cells(70, 1 + i).Value = mteils3
Cells(71, 1).Value = "mteils4"
Cells(71, 1 + i).Value = mteils4
Cells(72, 1).Value = "Wteils23"
Cells(72, 1 + i).Value = Wteils23
Cells(73, 1).Value = "Wteils14"
Cells(73, 1 + i).Value = Wteils14
Cells(74, 1).Value = "Waul"
Cells(74, 1 + i).Value = Waul
Cells(75, 1).Value = "Wabl"
Cells(75, 1 + i).Value = Wabl
End Sub

Private Sub Datenausgabe_mit_Beimischung()
Range("N3").Value = Tabl
Range("N15").Value = Qeinsp
Range("N36").Value = Tzulsoll
Range("K31").Value = "Beimischung"
Range("F30").Value = "Beimischung"
Range("F11").Value = "Beimischung"
Range("K12").Value = "Beimischung"
Range("F18").Value = "Beimischung"
Range("G45").Value = "Beimischung"
Range("G21").Value = "Beimischung"
Range("K33").Value = maulsole
Range("K24").Value = Twt33ein
Range("G2").Value = mpumpeKVS
Range("G35").Value = "Beimischung"
Range("A60:BB75").Value = ""
End Sub

Private Sub Workbook_Activate()
Application.ScreenUpdating = False
Application.AskToUpdateLinks = False
Application.ScreenUpdating = True
End Sub

Private Sub Abluftbefeuchter_Click()
If WP.Value = True Then
Abluftbefeuchter.Value = 0
Else
Abluftbefeuchter.Value = 1
End If
End Sub

Private Sub Befeuchtung()
Call Abluftbefeuchter_Click
Select Case Abluftbefeuchter.Value
Case True
For Each x In Workbooks
If x.Name = "ILK_hx-Diagramm.xls" Then
Workbooks("ILK_hx-Diagramm.xls").Activate
GoTo weiter1
End If
Next
'hx-Diagramm öffnen
Call Workbook_Activate
Workbooks.Open Filename:="C:\Dokumente und Einstellungen\br\Desktop\Bachelorarbeit3\ _
ILK_hx-Diagramm.xls"
weiter1:
Tablbef = Workbooks("ILK_hx-Diagramm.xls").Sheets("Datenpunkte").Cells(17, 6)
fiabl = Workbooks("ILK_hx-Diagramm.xls").Sheets("Datenpunkte").Cells(17, 8)
Windows("KVS.xls").Activate
Case Else
End Select
End Sub

Private Sub Berechnung_Click()
End Sub

Private Sub Einspeisung_Click()
If Einspeisung.Value = True Then
Qzus = 1
Else
Qzus = 0
End If
End Sub

Private Sub WP_Click()
If WP.Value = True Then
Einspeisung.Value = True
Else
End If
End Sub

Private Sub Berechnung_Beimischung()
Qeinsp = 0
Qaul = (Tzulsoll - Taul) * Waul
Qabl = Qaul
mpumpeKVS = Waul / cpsole
mpumpeBEF = 0
Call Datenausgabe_mit_Beimischung
End Sub

Private Sub Berechnung_ohne_Einspeisung_ohne_Frostschutz()
'Einlesen eines beliebigen Startwerts zur Überprüfung der Schleife
Twt22aus = -200
mteils4 = 1000
'Schleife
N = 15
For i = 1 To N
Twt33ein = (mteils3 * Twt22aus + (Wabl / cpsole) * Twt11aus) / (mteils4)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22ein = Twt33ein
'Berechnung der Zulufttemperatur
Tzul = (kA22 * Twt22ein + Taul * Waul) / (kA22 + Waul)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22aus = Twt22ein + Taul - Tzul
'Berechnung der Sole-Eintrittstemperatur im Ablufttauscher
Twt11ein = Twt22aus
'Berechnung der Fortlufttemperatur
Tfol = (kA11 * Twt11ein + Tabl * Wabl) / (kA11 + Wabl)
'Berechnung der Sole-Austrittstemperatur im Ablufttauscher
Twt11aus = Twt11ein + Tabl - Tfol
'Berechnung der übertragenen Leistung am Außenlufttauscher
Qaul = (Tzul - Taul) * Waul
'Berechnung der übertragenen Leistung am Ablufttauscher
Qabl = (Tabl - Tfol) * Wabl
'Berechnung der Umlaufströme
'Berechnung des Umlaufstroms 1
mteils1 = (Wabl / cpsole) * (Twt11ein - Twt22ein) / (Twt22aus - Twt22ein)
'Berechnung des Umlaufstroms 2
mteils2 = (Wabl / cpsole) - mteils1
'Berechnung des Umlaufstroms 4
mteils4 = (Waul / cpsole) + mteils2
'Berechnung des Umlaufstroms 3
mteils3 = mteils4 - (Wabl / cpsole)
Call Datenausgabe_ohne_Beimischung
Next i
End Sub

Private Sub Berechnung_ohne_Einspeisung_mit_Frostschutz()
'Einlesen eines beliebigen Startwerts zur Überprüfung der Schleife
Twt22ein = -200 'Probe
'Einlesen eines beliebigen Startwerts zur Überprüfung der Schleife
Twt22aus = 200 'Probe
mteils4 = 1000
'Schleifenbeginn
For i = 1 To N
'Berechnung der Sole-Eintrittstemperatur im Außenlufttauscher
Twt33ein = (mteils3 * Twt22aus + (Wabl / cpsole) * Twt11aus) / (mteils4)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22ein = Twt33ein
Tzul = (kA22 * Twt22ein + Taul * Waul) / (kA22 + Waul)
Twt22aus = Twt22ein + Taul - Tzul
Q22 = (Twt22ein - Twt22aus) * cpsole * (mteils4 - mteils2)
Twt11ein = Twt11einsoll
Tfol = (kA11 * Twt11ein + Tabl * Wabl) / (kA11 + Wabl)
'Berechnung der Übertragenen Leistung im Ablufttauscher um die minimale _
Fortlufttemperatur nicht zu unterschreiten
Q11 = (Tfol - Tabl) * Wabl
'Berechnung der Sole-Austrittstemperatur im Ablufttauscher
Twt11aus = Twt11ein + Tabl - Tfol
'Berechnung der Umlaufströme
'Berechnung des Umlaufstroms 1
mteils1 = (Wabl / cpsole) * (Twt11ein - Twt22ein) / (Twt22aus - Twt22ein)
'Berechnung des Umlaufstroms 2
mteils2 = (Wabl / cpsole) - mteils1
'Berechnung des Umlaufstroms 4
mteils4 = (Waul / cpsole) + mteils2
'Berechnung des Umlaufstroms 4
mteils3 = mteils4 - (Wabl / cpsole)
'Berechnung der übertragenen Leistung am Ablufttauscher
Qabl = (Tabl - Tfol) * Wabl
Qaul = (Tzul - Taul) * Waul
Call Datenausgabe_ohne_Beimischung
Next i
End Sub

Private Sub Berechnung_mit_Einspeisung_mit_Frostschutz()
For i = 1 To N
'Berechnung der Übertragenen Leistung im Außenlufttauscher
Q22 = (Tzulsoll - Taul) * Waul
'Berechnung der Sole-Eintrittstemperatur im Außenlufttauscher
Twt22ein = (Q22 / kA22) + Tzulsoll
'Berechnung der Zulufttemperatur
Tzul = (kA22 * Twt22ein + Taul * Waul) / (kA22 + Waul) 'ka22*(twt22ein-tzul)=waul*( _
tzul-taul)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22aus = Twt22ein + Taul - Tzul
'Berechnung der Übertragenen Leistung im Ablufttauscher
Twt11ein = Twt11einsoll
Tfol = (kA11 * Twt11ein + Tabl * Wabl) / (kA11 + Wabl)
Q11 = (Tfol - Tabl) * Wabl
'Berechnung der Sole-Eintrittstemperatur im Außenlufttauscher
'Twt11ein = (Q11 / kA11) + Tfolsoll
'Berechnung der Fortlufttemperatur
'Tfol = (kA11 * Twt11ein + Tabl * Wabl) / (kA11 + Wabl)
'Berechnung der Sole-Austrittstemperatur im Ablufttauscher
Twt11aus = Twt11ein + Tabl - Tfol
'Berechnung der Umlaufströme
'Berechnung des Umlaufstroms 1
mteils1 = (Wabl / cpsole) * (Twt11ein - Twt22ein) / (Twt22aus - Twt22ein)
'Berechnung des Umlaufstroms 2
mteils2 = (Wabl / cpsole) - mteils1
'Berechnung des Umlaufstroms 4
mteils4 = (Waul / cpsole) + mteils2
'Berechnung des Umlaufstroms 3
mteils3 = mteils4 - (Wabl / cpsole)
Twt33ein = (mteils3 * Twt22aus + (Wabl / cpsole) * Twt11aus) / (mteils4)
'Sole-Austrittstemperatur im Wärmetauscher entspricht der Sole-Eintrittstemperatur _
im Außenlufttauscher
Twt33aus = Twt22ein
'Berechnung der einzuspeisenden Energie
Qeinsp = (Twt33aus - Twt33ein) * cpsole * mteils4
'Berechnung der übertragenen Leistung am Außenlufttauscher
Qaul = (Tzul - Taul) * Waul
'Berechnung der übertragenen Leistung am Ablufttauscher
Qabl = (Tabl - Tfol) * Wabl
Call Datenausgabe_ohne_Beimischung
Next i
End Sub

Private Sub Berechnung_mit_Einspeisung_ohne_Frostschutz()
'Schleifenbeginn
For i = 1 To N
'Berechnung der Übertragenen Leistung im Außenlufttauscher
Q22 = (Tzulsoll - Taul) * Waul
'Berechnung der Sole-Eintrittstemperatur im Außenlufttauscher
Twt22ein = (Q22 / kA22) + Tzulsoll
'Berechnung der Zulufttemperatur
Tzul = (kA22 * Twt22ein + Taul * Waul) / (kA22 + Waul)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22aus = Twt22ein + Taul - Tzul
'Berechnung der Sole-Eintrittstemperatur im Ablufttauscher
Twt11ein = Twt22aus
'Berechnung der Fortlufttemperatur
Tfol = (kA11 * Twt11ein + Tabl * Wabl) / (kA11 + Wabl)
'Berechnung der Sole-Austrittstemperatur im Ablufttauscher
Twt11aus = Twt11ein + Tabl - Tfol
'Berechnung der übertragenen Leistung am Außenlufttauscher
Qaul = (Tzul - Taul) * Waul
'Berechnung der übertragenen Leistung am Ablufttauscher
Qabl = (Tabl - Tfol) * Wabl
'Berechnung der Umlaufströme
'Berechnung des Umlaufstroms 1
mteils1 = (Wabl / cpsole) * (Twt11ein - Twt22ein) / (Twt22aus - Twt22ein)
'Berechnung des Umlaufstroms 2
mteils2 = (Wabl / cpsole) - mteils1
'Berechnung des Umlaufstroms 4
mteils4 = (Waul / cpsole) + mteils2
'Berechnung des Umlaufstroms 3
mteils3 = mteils4 - (Wabl / cpsole)
'Berechnung der Sole-Eintrittstemperatur im Wärmetauscher
Twt33ein = (mteils3 * Twt22aus + (Wabl / cpsole) * Twt11aus) / (mteils4)
'Sole-Austrittstemperatur im Wärmetauscher entspricht der Sole-Eintrittstemperatur _
im Außenlufttauscher
Twt33aus = Twt22ein
'Berechnung der einzuspeisenden Energie
Qeinsp = (Twt33aus - Twt33ein) * cpsole * mteils4
Call Datenausgabe_ohne_Beimischung
Next i
End Sub

Die Unterprogramme

Private Sub Workbook_Activate(); 

Private Sub Abluftbefeuchter_Click(); 

Private Sub Befeuchtung();

Private Sub Einspeisung_Click(); 

Private Sub WP_Click() funktionieren.
Doch schon hier gibts probleme: 

Private Sub Berechnung_ohne_Einspeisung_ohne_Frostschutz()
Über eine schnelle Hilfe wäre ich sehr dankbar, da es für meine Bachelorarbeit (nicht  _
informatik, wie man wohl sieht) ist.
Danke schon mal im Voraus


		
AW: VBA Werte werden nicht übergeben
17.07.2009 11:50:49
Hajo_Zi
Hallo Markus,
steht in Deinen Modul oder Tabelle als erstes Option Explicit?
Alle Variablen die üerrgeben werden sollen sollten danach Definiert werden.

AW: VBA Werte werden nicht übergeben
17.07.2009 11:52:26
Rudi
Hallo,
deklariere die Variablen in einem allgem. Modul als PUBLIC.
Gruß
Rudi
AW: VBA Werte werden nicht übergeben
17.07.2009 12:02:02
Markus
Vielen Dank für eure Antworten.
meinst du das folgendermaßen?
Public Sub Variablenden()
Dim Taul as string
Dim Tabl as string....
End Sub
und das ins Modul?
AW: VBA Werte werden nicht übergeben
17.07.2009 12:45:33
Hajo_Zi
Hallo Markus,
entferne die erste und letzte Zeile, ersetze Dim durch Public und Du hast das was Rudi meint.
Gruß Hajo
Anzeige
AW: Variable Public
17.07.2009 12:02:40
UweD
Hallo
im oberen Teil als Public definieren.
so z.B.


Option Explicit
Public TTT$ '<<<<<<<<  gilt für alle Prozeduren
Sub M1()
    TTT = "Hallo"
    Call M2
End Sub
Private Sub M2()
    MsgBox TTT
End Sub


Gruß UweD
Anzeige
AW: Variable Public
17.07.2009 12:51:20
Markus
Bin zu blöd für die Anweisung!
Habe im Tabellenblatt jetzt folgendes:
Option Explicit
Public Sub CommandButton2_Click()
'Aufruf der Unterprogramme
Call Befeuchtung
Call Einspeisung_Click
Call WP_Click
Dim WRZproz, WRZ, Vaul, Vabl, cpluft, cpsole, dluft, Waul, Wabl, Wopt, maul, mabl, mopt, Fi, Tabl, Taul, Tfolsoll, Twt11einsoll, Tzulsoll, Tzul, Tfol, Twt11ein, Twt11aus, Twt22ein, Twt22aus, Qaul, Qabl, dtm22, dtm11, kA22, kA11, maulsole, mablsole, Qheiz, Qkühl, N, BEF, Beimischung, Qeinsp, Qzus, Tablbef, Wgehaltraumluft, Wgehaltabluft, dWgehalt, mbef, fiabl, x
'Berechnung des k*A-Werts
'Anfangsbedingungen einlesen
'Rückwärmzahl in %
WRZproz = Range("C14").Value
'Rückwärmzahl in %/100
WRZ = WRZproz / 100
'Außenluftvolumenstrom
........
Aber wenn er in: Private Sub Berechnung_ohne_Einspeisung_ohne_Frostschutz()
(liegt auch in im Tabellenblatt) springt, dann sagt er Twt22aus ist nicht definiert, obwohl ich sie ja schon in Public Sub CommandButton2_Click() definiert habe!!!
Bitte um Hilfe für einen, der sich nicht nur doof stellt.
Danke
Anzeige
AW: Variable Public
17.07.2009 12:56:13
Hajo_Zi
Hallo Markus,
bei Deiner Varianle hast Du es nur für Public Sub CommandButton2_Click() definiert.
Gruß Hajo
AW: Variable Public
17.07.2009 13:06:32
Markus
Das bedeutet ich füge:
Dim WRZproz, WRZ, Vaul, Vabl, cpluft, cpsole, dluft, Waul, Wabl, Wopt, maul, mabl, mopt, Fi, Tabl, Taul, Tfolsoll, Twt11einsoll, Tzulsoll, Tzul, Tfol, Twt11ein, Twt11aus, Twt22ein, Twt22aus, Qaul, Qabl, dtm22, dtm11, kA22, kA11, maulsole, mablsole, Qheiz, Qkühl, N, BEF, Beimischung, Qeinsp, Qzus, Tablbef, Wgehaltraumluft, Wgehaltabluft, dWgehalt, mbef, fiabl, x
in die anderen Private Sub'S ein und dann klappt es?
Anzeige
AW: Variable Public
17.07.2009 13:10:46
Markus
Ne, so klappt es auch nicht, die variablen verden dann nicht an die Unterprogramme (Private Sub's übernommen.
Kann mir jemand weiterhelfen?
AW: Variable Public
17.07.2009 13:35:19
UweD
Hallo
nein...
das muß ca. so aussehen.


Userbild


hier mußt du alle Variablen auflisten, die in mehreren Prozeduren verwendet werden (die nur in einer benötigt werden, dimensioniert du dort.
Das ist jetzt nur ein Beispiel, da ich das ganze Makro nicht lesen möchte.
Gruß UweD
AW: Variable Public
17.07.2009 13:14:27
Hajo_Zi
Hallo Markus,
Nein, dann hast Du Sie in desem Makro neu definiert.
Gruß Hajo
Anzeige
AW: Variable Public
17.07.2009 13:19:48
Markus
Warum übernimmt mir die Private Sub dann nicht die Werte der Variable?
AW: Variable Public
17.07.2009 13:32:24
Hajo_Zi
Hallo Markus,
weil Du Sie nur für das Makro definiert hast.
Du hast schon alle Beiträge gelesen? Das scheint mir nicht.
Gruß Hajo
AW: Variable Public
17.07.2009 13:55:07
Markus
Danke Hajo, hab einen Beitrag nicht gelesen.
Also Excel übergibt nun dei Variablen!
Danke allen dafür.
Nun habe ich aber das Problem, dass nach folgendem Unterprogramm
Private Sub Berechnung_ohne_Einspeisung_ohne_Frostschutz()
'Einlesen eines beliebigen Startwerts zur Überprüfung der Schleife
Twt22aus = -200
mteils4 = 1000
'Schleife
N = 15
For b = 1 To N
Twt33ein = (mteils3 * Twt22aus + (Wabl / cpsole) * Twt11aus) / (mteils4)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22ein = Twt33ein
'Berechnung der Zulufttemperatur
Tzul = (kA22 * Twt22ein + Taul * Waul) / (kA22 + Waul)
'Berechnung der Sole-Austrittstemperatur im Außenlufttauscher
Twt22aus = Twt22ein + Taul - Tzul
'Berechnung der Sole-Eintrittstemperatur im Ablufttauscher
Twt11ein = Twt22aus
'Berechnung der Fortlufttemperatur
Tfol = (kA11 * Twt11ein + Tabl * Wabl) / (kA11 + Wabl)
'Berechnung der Sole-Austrittstemperatur im Ablufttauscher
Twt11aus = Twt11ein + Tabl - Tfol
'Berechnung der übertragenen Leistung am Außenlufttauscher
Qaul = (Tzul - Taul) * Waul
'Berechnung der übertragenen Leistung am Ablufttauscher
Qabl = (Tabl - Tfol) * Wabl
'Berechnung der Umlaufströme
'Berechnung des Umlaufstroms 1
mteils1 = (Wabl / cpsole) * (Twt11ein - Twt22ein) / (Twt22aus - Twt22ein)
'Berechnung des Umlaufstroms 2
mteils2 = (Wabl / cpsole) - mteils1
'Berechnung des Umlaufstroms 4
mteils4 = (Waul / cpsole) + mteils2
'Berechnung des Umlaufstroms 3
mteils3 = mteils4 - (Wabl / cpsole)
Call Datenausgabe_ohne_Beimischung
Next b
End Sub
eigentlich das Unterprogramm Datenausgabe_ohne_Beimischung aufgerufen werden sollte. Das funktioniert auch, aber er sagt: Fehler beim Kompilieren, Variable nicht definiert! Dies geschieht an folgender Stelle:
Private Sub Datenausgabe_ohne_Beimischung()
Woran kann das liegen.
die 

Private Sub Datenausgabe_ohne_Beimischung() sieht folgendermaßen aus:

Private Sub Datenausgabe_ohne_Beimischung()
Range("N3").Value = Tabl
Range("C3").Value = Tfol
Range("N15").Value = Qeinsp
Range("N36").Value = Tzul
Range("K31").Value = Twt22ein
Range("F30").Value = Twt22aus
Range("F11").Value = Twt11ein
Range("K12").Value = Twt11aus
Range("F18").Value = mteils1
Range("G45").Value = mteils2
Range("G21").Value = mteils3
Range("K33").Value = mteils4
Range("K24").Value = Twt33ein
Range("G2").Value = mablsole
Range("G35").Value = maulsole
Cells(60, 1).Value = "Tzul"
Cells(60, 1 + I).Value = Tzul
Cells(61, 1).Value = "Tfol"
Cells(61, 1 + I).Value = Tfol
Cells(62, 1).Value = "Twt22ein"
Cells(62, 1 + I).Value = Twt22ein
Cells(63, 1).Value = "Twt22aus"
Cells(63, 1 + I).Value = Twt22aus
Cells(64, 1).Value = "Twt11ein"
Cells(64, 1 + I).Value = Twt11ein
Cells(65, 1).Value = "Twt11aus"
Cells(65, 1 + I).Value = Twt11aus
Cells(66, 1).Value = "Qaul"
Cells(66, 1 + I).Value = Qaul
Cells(67, 1).Value = "Qabl"
Cells(67, 1 + I).Value = Qabl
Cells(68, 1).Value = "mteils1"
Cells(68, 1 + I).Value = mteils1
Cells(69, 1).Value = "mteils2"
Cells(69, 1 + I).Value = mteils2
Cells(70, 1).Value = "mteils3"
Cells(70, 1 + I).Value = mteils3
Cells(71, 1).Value = "mteils4"
Cells(71, 1 + I).Value = mteils4
Cells(72, 1).Value = "Wteils23"
Cells(72, 1 + I).Value = Wteils23
Cells(73, 1).Value = "Wteils14"
Cells(73, 1 + I).Value = Wteils14
Cells(74, 1).Value = "Waul"
Cells(74, 1 + I).Value = Waul
Cells(75, 1).Value = "Wabl"
Cells(75, 1 + I).Value = Wabl
End Sub
Danke
Anzeige
AW: Variable Public
17.07.2009 14:00:45
Hajo_Zi
Hallo Markus,
die Variable die nicht fdefiniert ist ist doch gekennzeichnet.
Wir können es nicht testen.
Gruß Hajo
dann definier sie doch! owT
17.07.2009 14:00:56
Rudi
AW: dann definier sie doch! owT
17.07.2009 14:02:08
Markus
Habs gefunden. I war nicht definiert. Danke für eure Geduld!!!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige