Herbers Excel-Forum - das Archiv
Formeln Texte

|
Betrifft: Formeln Texte
von: schrö
Geschrieben am: 08.12.2003 12:20:11
Hallo,
ich habe folgendes Problem. habe ein kleines VB script, dieses fügt nach Enter
bestimmte Formeln in die nächste freie Zeile.
Diese Formeln rechnen mit festen Werten, die in den ersten beiten Zeilen stehen. Wenn ich nun sagen wir 10 Zeilen eingefügt habe und einen dieser festen Werte verändere, werden alle anderen Zeilen aktualisiert.
Kann ich nicht die Ergebinsse in den einzelnen Zeilen in Text umwandeln?? Per VB?
Betrifft: AW: Formeln Texte
von: Josef Ehrensberger
Geschrieben am: 08.12.2003 12:26:18
Hallo schrö ???,
zwei möglichkeiten.
1. Zelle(n) Kopieren > Bearbeiten > Inhalte Einfügen > Werte
oder
2. durch dein Script nicht die Formeln einfügen, sondern
das Ergebnis!
Gruß Sepp
Betrifft: AW: Formeln Texte
von: Schrö
Geschrieben am: 08.12.2003 12:29:17
Hallo Josef Ehrensberger,
wie geht dies. Habe in solchen Sachen keinen Schimmer.
Betrifft: Poste mal den Code ! o.T.
von: Josef Ehrensberger
Geschrieben am: 08.12.2003 12:30:26
/
Betrifft: AW: Poste mal den Code ! o.T.
von: schrö
Geschrieben am: 08.12.2003 12:34:11
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
Application.EnableEvents = False
Cells(Target.Row + 1, 1).Select
Cells(Target.Row + 1, 6).FormulaR1C1 = "=IF(RC[-3]=""Sell"",((R1C5*R4C5*R1C7)-RC[-4]),"""")"
Cells(Target.Row + 1, 7).FormulaR1C1 = "=IF(RC[-4]=""Buy"",((R1C5*R4C5*R1C7)+RC[-5]),"""")"
Cells(Target.Row + 1, 8).FormulaR1C1 = "=IF(RC[-2]<0,""SELL"",""BUY"")"
Cells(Target.Row + 1, 9).FormulaR1C1 = "=IF(RC[-1]=""BUY"",(R1C5*R1C11*RC[-4])-RC[-7])"
Cells(Target.Row + 1, 10).FormulaR1C1 = "=IF(RC[-2]=""SELL"",(R1C5*R1C11*R4C5)+RC[-8],RC[-1])"
Cells(Target.Row + 1, 12).FormulaR1C1 = "=IF(RC[-9]=""Sell"",((R1C13*R1C5)+RC[-6]),IF(RC[-9]=""Buy"",((R1C5*R1C13)+RC[-5]),""?""))"
Cells(Target.Row + 1, 13).FormulaR1C1 = "=RC[-6]+(R1C5*R1C13)"
Cells(Target.Row + 1, 14).FormulaR1C1 = "=IF(RC[-11]=""SELL"",-(RC[-12]-R1C11),IF(RC[-11]=""BUY"",(RC[-12]+R1C11),""?""))"
Application.EnableEvents = True
End Sub
Betrifft: AW: Poste mal den Code ! o.T.
von: schrö
Geschrieben am: 08.12.2003 12:38:51
und das hier muss ich noch einbinden und die Funktion umdrehen.
Private Sub Worksheet_Activate()
Application.MoveAfterReturnDirection = xlToRight
End Sub
Private Sub Worksheet_Deactivate()
Application.MoveAfterReturnDirection = xlDown
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 15 Then
Rows("3:3").Insert shift:=xlDown
Range("A3").Value = Range("A4").Value + 1
Range("B3").Select
End If
End Sub
Betrifft: AW: Poste mal den Code ! o.T.
von: schrö
Geschrieben am: 08.12.2003 12:46:23
und das hier muss ich noch einbinden und die Funktion umdrehen.
Private Sub Worksheet_Activate()
Application.MoveAfterReturnDirection = xlToRight
End Sub
Private Sub Worksheet_Deactivate()
Application.MoveAfterReturnDirection = xlDown
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 15 Then
Rows("3:3").Insert shift:=xlDown
Range("A3").Value = Range("A4").Value + 1
Range("B3").Select
End If
End Sub
Betrifft: AW: Poste mal den Code ! o.T.
von: Josef Ehrensberger
Geschrieben am: 08.12.2003 12:58:13
Hi,
auf die schnelle könntest Du den Code so ändern.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
Application.EnableEvents = False
Cells(Target.Row + 1, 1).Select
Cells(Target.Row + 1, 6).FormulaR1C1 = "=IF(RC[-3]=""Sell"",((R1C5*R4C5*R1C7)-RC[-4]),"""")"
Cells(Target.Row + 1, 7).FormulaR1C1 = "=IF(RC[-4]=""Buy"",((R1C5*R4C5*R1C7)+RC[-5]),"""")"
Cells(Target.Row + 1, 8).FormulaR1C1 = "=IF(RC[-2]<0,""SELL"",""BUY"")"
Cells(Target.Row + 1, 9).FormulaR1C1 = "=IF(RC[-1]=""BUY"",(R1C5*R1C11*RC[-4])-RC[-7])"
Cells(Target.Row + 1, 10).FormulaR1C1 = "=IF(RC[-2]=""SELL"",(R1C5*R1C11*R4C5)+RC[-8],RC[-1])"
Cells(Target.Row + 1, 12).FormulaR1C1 = "=IF(RC[-9]=""Sell"",((R1C13*R1C5)+RC[-6]),IF(RC[-9]=""Buy"",((R1C5*R1C13)+RC[-5]),""?""))"
Cells(Target.Row + 1, 13).FormulaR1C1 = "=RC[-6]+(R1C5*R1C13)"
Cells(Target.Row + 1, 14).FormulaR1C1 = "=IF(RC[-11]=""SELL"",-(RC[-12]-R1C11),IF(RC[-11]=""BUY"",(RC[-12]+R1C11),""?""))"
ActiveSheet.Calculate
Cells(Target.Row + 1, 6) = Cells(Target.Row + 1, 6).Value
Cells(Target.Row + 1, 7) = Cells(Target.Row + 1, 7).Value
Cells(Target.Row + 1, 8) = Cells(Target.Row + 1, 8).Value
Cells(Target.Row + 1, 9) = Cells(Target.Row + 1, 9).Value
Cells(Target.Row + 1, 10) = Cells(Target.Row + 1, 10).Value
Cells(Target.Row + 1, 12) = Cells(Target.Row + 1, 12).Value
Cells(Target.Row + 1, 13) = Cells(Target.Row + 1, 13).Value
Cells(Target.Row + 1, 14) = Cells(Target.Row + 1, 14).Value
Application.EnableEvents = True
End Sub
Dabei werden zuerst die formeln eingetragen.
Ginge siche auch einfacher, ich wollte mich aber jetzt nicht
mit den Formeln befassen.
Grus Sepp
Betrifft: AW: Poste mal den Code ! o.T.
von: schrö
Geschrieben am: 08.12.2003 13:06:28
werd ich gleich mal testen. Vielen Dank.
Betrifft: AW: Poste mal den Code ! o.T.
von: schrö
Geschrieben am: 08.12.2003 13:33:31
Hallo,
also so richtig geht es nicht. Es löscht jetzt alle Formeln oder kopiert keine Formel mehr.
Mal etwas anders:
zeile 1 feste Daten
Zeile 2 feste Daten
Zeile 3 enthält alle Formeln (diese werden per VB in die nächste (Zeile 4) kopiert
Zeile 4 enthält jetzt die Formeln (kopieren per VB)
Zeile 5 enthält jetzt die Formeln (kopieren per VB)
usw.
Jetzt möchte ich, dass die Zeilen ab 4 nicht mehr berechnet werden. Das Ergebniss soll da stehen bleiben. (Text)