Formel dynamisch generieren ?

25/09/2007 - 14:33 von Jürgen Heyn | Report spam
Hallo,

ich möchte eine Formel mit VBA dynamisch generieren.
Nachfolgender Code erstellt im Direktfenster die gewünschte Formel. Wenn ich
diese in die Zelle kopiere funktioniert die Formel wie erwartet.
Die beiden Routinen "Date2Julian" und "Str2Hrs" sind zwei (public)
Funktionen im Modul1 und erwarten die Übergabe der Zellwerte.
Wenn ich allerdings das Worksheet_Change() Ereigniss auslöse, bekomme ich
den Fehler: " Laufzeitfehler: 1004 Anwendungs- oder objektdefinierter
Fehler".
Wo liegt mein Denkfehler.
Vielen Dank für jeden Tipp
Grüsse
Jürgen Heyn, Wilhelmshaven

'Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print "Worksheet_Change() ..."
Dim rValid As Range
Dim rCell As Range
Dim sCellDate As String
Dim sCellTime As String
Dim sFormula As String
Dim rRange As Range
Application.ScreenUpdating = False
If Target.Row >= 8 And Target.Row <= 99 Then
Select Case True
Case Target.Column = 4
Set rValid = Range("D8:D99")
For Each rCell In rValid
If rCell = Target Then
sCellDate = "B" + CStr(Target.Row)
sCellTime = "D" + CStr(Target.Row)
sFormula = "=Wenn(" + sCellTime + "<>" + Chr(34) + Chr(34)
+ ";Date2Julian(" + sCellDate + ";Str2Hrs(" + sCellTime + "));0)"
Debug.Print sFormula
ActiveSheet.Range(Cells(Target.Row, Target.Column +
1)).Formula = sFormula
Exit Sub
End If
Next rCell
End Select
End If
Application.ScreenUpdating = False
End Sub
 

Lesen sie die antworten

#1 Bernd P
25/09/2007 - 15:43 | Warnen spam
Hallo,

.formulalocal = WENN(...
oder
.formula = IF(... [mit Kommata als Parametertrennzeichen]

HTH,
Bernd

Ähnliche fragen