...ich reibe mich seit mehrern Tagen an einem Problem in Exel. Ich werde etwas mehr dazu schreiben müssen, da schwer in 2 Sätzen darstellbar.
Ausgangspunkt: mehrere Exeldateien mit vielen Tabellenblättern (...die ich nicht erstellt habe...).
Ziel: aus allen Dateien je ein Blatt "entnehmen" und in separate Datei kopieren. Dabei die Formeln dieser Blätter mitnehmen.
Hatte ich mir sehr einfach vorgestellt - kopieren/einfügen-fertig! Aber die Formeln brachten dann kein Ergebnis. Also anders:
Erster Schritt: Eine der Ausgangsdateien nehmen, überflüssige Datenblätter entfernen - bis dahin Berechnung ok.
Zweiter Schritt: das verbliebene umbenennen: Berechnungsergebnis "XXXXX"
Dritter Schritt: Rückbenennung - Berechnung richtig
Vierter Schritt: dieses Tabellenblatt kopieren und unter anderem Namen in der gleichen Datei einfügen - Funktioniert!
Also scheint hier ein VBA - Bezug vorzuliegen. Blick in VBA:
Im Sheet selbst - nichts.
Unter Formulare/UserForm1:
Private Sub UserForm_Click()
End Sub
...kann eigentlich nichts dazu beitragen (oder?)
Unter Klassenmodule:
Class1:
Private Sub Class_Initialize()
End Sub
Class2: leer
...kann auch kaum die Ursache sein...
Unter "Moduel 1:
Function FCalculateDenom(strRatePercCol As String, rngUserResponse As Range)
'Application.Volatile
Dim rngUserRespCell As Range
Dim rngRatePercCell As Range
Dim varFinalValue As Variant
Dim varMaxUserRespCodeValue
varFinalValue = 0
varMaxUserRespCodeValue = 3
strQuestionaireName = "Pyramid Questions"
For Each rngUserRespCell In rngUserResponse
If rngUserRespCell.Value "NA" Then
Set rngRatePercCell = Sheets(strQuestionaireName).Range(strRatePercCol & CStr(rngUserRespCell.Row))
varFinalValue = varFinalValue + rngRatePercCell.Value
End If
Next rngUserRespCell
FCalculateDenom = varFinalValue * varMaxUserRespCodeValue
End Function
wobei "Pyramid Questions" der Name des Tabellenblattes ist, bei dem bei Umbenennung die Berechnung nicht mehr funktioniert. "FCalculateDenom" ist eine zusätzliche Berechnung in Exel, die unter Formeln hinterlegt ist. Sicherheitshalber kopiere ich die Forlmel hier mit rei, auch wenn sie aus meiner Sicht nicht das Problem darstellen kann. Sie ist zwar pro Blatt in den Zellbezügen verschieden (da unterschiedl. Anzahl Zeilen) aber eine Kontrolle über "Vorgänger" verweist einzig auf Einträge im gleichen Tabellenblatt.
Formel:
=WENN(ZÄHLENWENN(U15:U25;"=NA")=4;"NA";(WENN($U$15=0;0;WENN(SUMME(U15:U25)=0;0;((N(U15)*$N$15) +(N(U18)*$N$18)+(N(U21)*$N$21)+(N(U24)*$N$24))/FCalculateDenom("N";U15:U25)))))
Ich bin mit meinem Latein am Ende....