Es geht um dieses Script:
Private Sub Worksheet_Calculate()
Dim objCell As Range
For Each objCell In Range("B1:B10")
If objCell.HasFormula Then _
If IsNumeric(objCell.Text) Then _
If Fix(objCell.Value) = objCell.Value Then _
objCell.Value = objCell.Value
Next
End Sub
Es löscht die Formel und ersetzt diese durch den errechneten Wert. Soweit sogut!
Nun habe ich diese Formel
B1 =WENN(A1="Karl";123;"")
Wenn ich nun "Karl" mit der Hand eintippe, dann löscht das Script die Formel und schreibt 123 in B1.
Soweit funtioniert alles.
Nun verwende ich dieses Script:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zellbereich As Range
Dim Primut As String
Set Zellbereich = Range("A1:A10")
Select Case Target
Case "ka"
Primut = "Karl"
Case "wa"
Primut = "Walter"
Case "Su"
Primut = "Susanne"
Case Else
Exit Sub
End Select
Application.EnableEvents = False
Target = Primut
Application.EnableEvents = True
Exit Sub
End Sub
Damit muss man in A1 nicht "Karl" eintippen sondern kann das Kürzel "ka" verwenden.Leider funktioniert dann aber das "Formel-löschen-Zahl-einsetzen-Script" nicht mehr und die formel wird NICHT gelöscht.
Es geht also darum, das ein Script nicht mit dem Ergebnis eines anderen Scripts weiterrechen kann.
Warum brauche ich das?
Weil ich mit der Zahl, beispiel Karl->123, weiterrechnen möchte.
Wenn mir wer helfen kann, dann bitte ich darum.
Gruß nightcab