- #1
K
klexy
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 04.05.2002
- Beiträge
- 802
- Reaktionspunkte
- 0
- Ort
- Bayern
Ich kenne die Sprungmarke GoTo innerhalb eines Makros und Application.Run an den Anfang eines anderen Makros.
Gibt es die Möglichkeit mitten in ein anderes Makro rein zu springen? Also sowas wie Application.Run/Sprungziel
Konkret: Folgende Tabelle.
Luftdruck und Temperatur werden eingegeben, Dichte wird errechnet, sobald etwas in B4 oder B5 eingegeben wird.
_________________________________________________________
-------------------------------------------------------------------------------------------
Darunter werden mit jeweils 2 Leerzeilen Abstand in gleicher Form und Anordnung noch Strömungsgeschwindigkeit, Schallpegel und sonst was alles berechnet.
Im Tabellenblatt habe ich folgendes Makro:
Das Makro ER_Luftdichte, in das gesprungen werden soll, ist im Modul 1:
Das Problem ist, dass nach Durchlauf des Makros ER_Luftdichte im ersten Makro (Worksheet_Change(ByVal Target As Range))nicht wieder bei der Sprungmarke (Application.Run) weitergemacht wird, sondern wieder ganz von vorne.
Eigentlich kein Problem, aber ganz am Ende des ersten Makros hab ich noch
Und dadurch, dass er ganz von vorne beginnt, vergisst er, wo das ursprüngliche Hier war.
Kann ich ans Ende des Makros ER_Luftdichte eine Sprungmarke an die richtige Stelle im ersten Makro setzen?
Oder was mach ich falsch, dass er wieder von vorne anfängt?
Gibt es die Möglichkeit mitten in ein anderes Makro rein zu springen? Also sowas wie Application.Run/Sprungziel
Konkret: Folgende Tabelle.
Luftdruck und Temperatur werden eingegeben, Dichte wird errechnet, sobald etwas in B4 oder B5 eingegeben wird.
_________________________________________________________
A | B | C | |
1 | |||
2 | Luftdichte | ||
3 | Parameter | Wert | Maßeinheit |
4 | Luftdruck | 1000 | mbar (abs.) |
5 | Temperatur | 20 | °C |
6 | Dichte | 1,18833926 | kg/m³ |
Darunter werden mit jeweils 2 Leerzeilen Abstand in gleicher Form und Anordnung noch Strömungsgeschwindigkeit, Schallpegel und sonst was alles berechnet.
Im Tabellenblatt habe ich folgendes Makro:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim M1 As String, M2 As String, M3 As String, M4 As String
Dim Z1 As Single, Z2 As Single, Z3 As Single, Z4 As Single
Dim Hier As Range
Set Hier = ActiveCell
M1 = Luftdichte
Columns(A:A).Select
Selection.Find(What:=M1, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Offset(0, 1).Offset(0, -1).Select
Selection.Activate
Z1 = ActiveCell.Row->
If Target.Column = 2 And Target.Row > Z1 + 1 And Target.Row < Z1 + 4 Then
Application.Run ER_Luftdichte
End If
M2 = Strömungsgeschwindigkeit
usw
usw, hier kommen dann weitere gleichartige Bausteine für die weiteren Berechnungen
Code:
Sub ER_Luftdichte()
Dim Druck As Double, Temperatur As Double, Dichte As Double
Druck = Range(B4)
Temperatur = Range(B5)
Dichte = (Druck * 100) / (287.058 * (Temperatur + 273.15))
Range(B6).Formula = Dichte
End Sub
Das Problem ist, dass nach Durchlauf des Makros ER_Luftdichte im ersten Makro (Worksheet_Change(ByVal Target As Range))nicht wieder bei der Sprungmarke (Application.Run) weitergemacht wird, sondern wieder ganz von vorne.
Eigentlich kein Problem, aber ganz am Ende des ersten Makros hab ich noch
Code:
If Hier.Interior.ColorIndex = 33 Then->wenn das Feld blau ist, ist es ein Ergebnis- und kein Eingabefeld
Hier.End(xlUp).Offset(1, 0).Select
Else
Hier.Select
End If
Und dadurch, dass er ganz von vorne beginnt, vergisst er, wo das ursprüngliche Hier war.
Kann ich ans Ende des Makros ER_Luftdichte eine Sprungmarke an die richtige Stelle im ersten Makro setzen?
Oder was mach ich falsch, dass er wieder von vorne anfängt?