Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formel für verschiedene Tabellen verwenden

Formel für verschiedene Tabellen verwenden
16.10.2012 16:28:18
Martin
Hallo zusammen,
ich habe in einer Datei einige Tabellenblätter („Stufe 1“ bis „Stufe N“), die alle den gleichen Aufbau haben (Siehe Beispiel).
https://www.herber.de/bbs/user/82147.xlsm
Mit verschiedenen Daten auf den einzelnen Blättern möchte ich einige charakteristische Werte berechnen (zur Vereinfachung habe ich in dem Bespiel beliebige einfache Gleichungen angegeben; in der Realität ist die Berechnung komplexer und erfolgt mit einem VBA Code mit zahlreichen IF und For Abfragen)
Diese Berechnungen sollen nun für die jeweiligen Tabellenblätter durchgeführt werden und die Ergebnisse dann in der jeweiligen Spalte der Tabelle „Ergebnis“ dargestellt werden (d.h. Berechnungen mit Daten aus „Stufe 1“ in Spalte B, mit Daten aus „Stufe 2“ in Spalte C usw.).
Wie mache ich dies am besten? Kann ich auch für die Tabellenblätter eine Art "For Schleife
for j = 4 to 100 do tabelle(j).cells(4,2) = …. etc.) machen?
Vielen Dank für eure Hilfe und schöne Grüße aus dem Rheinland,
Martin

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

Betreff
Datum
Anwender
Anzeige
Worum geht|s eigentlich, ...
16.10.2012 17:51:37
Luc:-?
…Martin,
Formeln oder ein VBA-Pgm? Und was ist das für eine merkwürdige Syntax for j = 4 to 100 do tabelle(j).cells(4,2) = …?
Natürlich kann man eine Laufvariable auch über mehrere Blätter laufen lassen, genauso in 2 Zeilen (Next am Ende nicht vergessen!) ohne do, denn das leitet einen anderen Schleifentyp ein.
Gruß Luc :-?

AW: Worum geht|s eigentlich, ...
16.10.2012 18:10:05
Martin
Hallo Luc,
danke für deine Rückmeldung.
Ich habe einen Schleife erstellt, mit der ich eine Berechnung mit Daten von einem bestimmten Blatt (z.B. Tabelle 4) mache. In den Berechnungen, die ich in der Tabelle "Ergebnis" mache, kommt in den Formeln auch die Bezeichnung Tabelle 4 vor.
z.B. If Application.IsNA(Application.VLookup(ActiveSheet.Cells(I, 1), Tabelle4.Range("C34:E50"), 2, False)) Then...
Nun möchte ich, dass diese Schleife/Berechnung auch auf den anderen Blättern (Tabelle5 etc) mit gleichem Aufbau wiederholt wird. Das Ergebnis für jede Tabelle soll dann in einer art "Übersichstabelle" zusammenmgefasst werden.
Leider weiß ich nicht, wie die Syntx dafür aussieht, deswegen habe ich oben den kryptischen Versuch gestartet. Irgendiwe muss ich in den Formenl ja auch die Bezeichnung "Tabelle4" ersetzen, wenn die Berechnung mit Daten aus Tabelle 5 durchgeführt werden soll.
Hoffe, dass mein Problem jetzt verständlicher wird.
Gruß,
Martin

Anzeige
Falls der BlattIndex die gewünschten ...
17.10.2012 03:33:02
Luc:-?
…Tabellen trifft, Martin,
war dein Ansatz schon mal nicht ganz verkehrt, allerdings ohne do! Falls nicht, würde ich die betreffenden Blattnamen in der gewünschten Reihenfolge in eine String-Konstante am PgmAnfang schreiben, getrennt durch ein in den Namen nicht auftretendes Zeichen (günstigstenfalls Leerzeichen).
In der For…Next-Schleife würde ich nun die betreffenden Blätter durchlaufen lassen, entweder so wie von dir angedacht (1.Variante) oder, falls das nicht geht, eine Variant-Variable mit = Split(blattnamenkonstante, trennzeichen) (trennzeichen kann entfallen, falls es ein Leerzeichen ist) füllen. Die kannst du nun in der Schleife von LBound(blattnamenvar) (idR=0) bis UBound(blattnamenvariable) durchlaufen lassen. Dadurch ergäbe sich für den Aufruf der Blätter folgende Änderung; statt Sheets(blattindex) muss es jetzt Sheets(blattnamenvar(laufindex)) heißen. Entweder das oder den Blattindex verwendest du in deinem If…Then…Else-Konstrukt, bei dem es sich übrigens nicht um eine sog Schleife, also einen zyklisch abzuarbeitenden PgmTeil handelt.
In deiner letzten Nachricht sehe ich, dass du die Internnamen der Blätter verwendest. Das geht auch, aber ich würde die ändern, damit sie nicht in jedem deiner Projekte gleich heißen, sonst könnte es mal, wenn du mit mehreren Mappen arbeitest, bei dieser Methode Probleme geben. Denen kannst du nämlich keinen Workbook-Namen voranstellen!
Also, falls du so wie von dir zuletzt angedeutet arbeiten willst, schreibe die Internnamen in ein Variablen-Array vom Typ Worksheet (evtl auch Worksheets; am PgmEnde Nothing setzen). Dann müsstest du mit dem LaufIndex die alle nacheinander abgreifen können → etwa so: blattinternamen(laufindex).Range("C34:E50")
Falls es so nicht klappt, greife auf eine der beiden anderen Varianten zurück.
Gruß Luc :-?
Anzeige

16 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige