Ich habe folgendes Problem. Ich habe eine Tabelle in der DBR-Formeln sind (OLAP-Datenbankanbindung). Normalerweise werden diese Formeln nicht überschrieben, wenn man Werte eingibt. Nun tritt das Problem aber vereinzelt auf, dass bei einer Eingabe danach nur noch der Wert in der Zelle ist (sollte normal über dir Formel dann wieder aus der Datenbank ausgelesen werden).
Nun habe ich gedacht ich kann mit einem Formelschutz arbeiten und mittels folgendem Befehl die Formeln schützen bzw. wiederherstellen lassen. Das geht auch - allerdings verhindert es auch, dass überhaupt ein Wert in die Datenbank gelangt.
Wenn also ein Wert in z.B. A1 eingegeben wird und dort steht eine DBR-Formel (und sichtbar 0, da noch kein Wert in der DB ist) und ich eine 1 eingebe, dann stellt er dir Formel wieder her und es ist wieder eine 0 zu sehen. Es sollen aber Werte geschrieben werden dürfen, aber die Formel soll hinterher dennoch wieder zur Verfügung stehen.
Hat jmd. einen Tipp? Stehe echt auf dem Schlauch!
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Excel.Range)
Dim WertAktuell()
Dim rngArea As Range
Dim rngAZ As Range
Dim rngZelle As Range
Dim lngZ As Long
Set rngAZ = ActiveCell
On Error GoTo Ende
Application.EnableEvents = False
Select Case sh.Name
Case "Blatt1", "Blatt2"
'die Formeln dieser Tabellen werden geschützt
'Case Else
'durch 'Case Else' wird der Befehl umgekehrt - also kein Schutz auf den ausgewählten _
Seiten
ReDim WertAktuell(1 To Target.Cells.Count)
For Each rngArea In Target.Areas
For Each rngZelle In rngArea.Cells
lngZ = lngZ + 1
WertAktuell(lngZ) = rngZelle.Formula
Next rngZelle
Next rngArea
lngZ = 0
Application.Undo
For Each rngArea In Target.Areas
For Each rngZelle In rngArea.Cells
lngZ = lngZ + 1
If Not rngZelle.HasFormula Then rngZelle = WertAktuell(lngZ)
Next rngZelle
Next rngArea
rngAZ.Activate
End Select
Ende:
Application.EnableEvents = True
End Sub