Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zus.fassen Datenblättern; inkl. Formeln+VBA-Code

Zus.fassen Datenblättern; inkl. Formeln+VBA-Code
18.06.2009 12:51:27
Fred
Hallo liebe Wissende,
...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....

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zus.fassen Datenblättern; inkl. Formeln+VBA-Code
18.06.2009 14:05:21
fcs
Hallo Fred,
es muss ja irgendeinen Grund geben, warum das Blatt "Pyramid Questions" in dieser benutzerdefinierten Funktion als Bezugsblatt für die Berechnungen in den anderen Blättern verwendet wird.
Auf jeden Fall gibt es die Fehlermeldung bei Ausführung der Funktion, wenn das Blatt mit dem Namen "Pyramid Questions" nicht mehr existiert oder das Modul mir der Function in der Zieldatei fehlt, da dann die Zeile
Set rngRatePercCell = Sheets(strQuestionaireName).Range(strRatePercCol & CStr(rngUserRespCell.Row))
in eien Fehlerbedingung läuft.
In der zusammengeführten Datei muss also mindestens auch ein Blatt mit Namen "Pyramid Questions" und ein Modul mit der Function "FCalculateDenom" existieren, damit das Kopieren der Blätter inklusive Formeln funktioniert.
Gruß
Franz
Anzeige
AW: Zus.fassen Datenblättern; inkl. Formeln+VBA-Code
18.06.2009 14:15:23
Fred
Hallo Franz,
...genau das ist ja mein Problem - für die neue Datei habe ich eine "alte" als Vorlage gewählt, um den VBA-Code zu übernehmen. Funktioniert dann aber nur für das eine Tabellenblatt mitr dem Namen "Py.Qu." bzw für Kopien davon auf anderen Tabellenblättern mit anderen Namen. Sobald ein Blatt aus einer anderen Datei dazukommt (mit dem gleichen VBA Code...) rechnet diese nicht mehr...
Sobald man das eine tabellenblatt "Py. Quest."umbenennt, funktioniert keine Berechnung mehr...
AW: FEHLER GEFUNDEN!!
18.06.2009 16:56:50
Fred
Habe den Fehler gefunden; die Tabellen sahen zwar gleich aus (auch nach dem Kopieren) - aber (ANFÄNGERFEHLER!!) ich hatte übersehen, dass bei den reinkopierten Blättern eine Spalte mehr am Anfang stand - das hat die Formel wohl verwirrt...
Trotzdem Danke!
Anzeige

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige