Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
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
Berechnungen aus Daten aus jedem Tabellenblatt
31.03.2015 11:24:58
Robin
Hallo,
ich habe folgendes Problem:
In meinem Tabellenblatt 1 sollen Berechnungen angezeigt werden mit Werten der Tabellenblätter 3,4,5...x.
Im Blatt 1 sollen in Spalte A die Namen der Tabellenblätter (3,4,5...x-1) angezeigt werden. Jedoch nicht direkt untereinander, da zu jeder Berechnung vier Werte gehören.
In Spalte A steht also:
A2: Tabellenblatt 3
A6: Tabellenblatt 4
A10: Tabellenblatt 5
usw.
Dazu gehört unter Spalte B für jedes Blatt die Zahlen 1,2,3,4.
In meinem letzten Tabellenblatt befindet sich eine Liste mit allen Namen. Hier habe ich bereits die Möglichkeit eingebaut, dass ich mit Hilfe einer Userform einen neuen Eintrag in diese Liste machen kann und dann ein neues Tabellenblatt erstellt wird.
Mir fehlt also in erster Linie ein Vergleich zwischen den Tabellenblättern und dem, was auf Blatt 1 steht. Wenn ein Eintrag dort in Spalte A noch nicht vorhanden ist, soll dieser ergänzt werden.
In Spalte C, D usw. sollen verschiedene berechnete Werte stehen.
Es soll also ein Abgleich stattfinden zwischen dem Tabellenblattnamen in Spalte A und dem Inhalt des darauf bezogenen Tabellenblattes. Von dort sollen dann jeweils bestimmte Zahlen genommen werden, mit einer Formel berechnet und dann im Tabellenblatt 1 ausgegeben werden.
So viel dazu.
Ich hoffe, es ist nicht zu umständlich formuliert, ansonsten ergänze ich selbstverständlich alle fehlenden Infos.
Vielen Dank!

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
warum ...
31.03.2015 11:34:32
der
Hallo Robin,
... stellst Du nicht einfach eine entsprechende Beispieldatei ein und erklärst daran Deine Zielvorstellung?
Gruß Werner
.. , - ...

welche Werte sollen denn wohin? ...
31.03.2015 12:39:32
der
Hallo Robin,
... zunächst hast Du in den "Hersteller"-Tabellenblättern mehr als 4 Werte. Dazu unglücklicherweise derzeit auch noch gleiche in den drei.
Vergib mal unterschiedliche Werte und zeige "händisch" auf, welcher Wert wohin soll.
Einen Zusammenhang Deiner Daten in der Herstellerliste und Deiner Zielstellung kann ich derzeit auch noch nicht erkennen.
Gruß Werner
.. , - ...

Anzeige
AW: welche Werte sollen denn wohin? ...
31.03.2015 13:37:40
Robin
Hier die geänderte Tabelle:
https://www.herber.de/bbs/user/96765.xlsx
Wie man sehen kann, sind es für die Nr.1,2,3 und 4 immer die gleichen zugehörigen Herstellerwerte (Sprich 6-10,12-16 usw.)
Ich denke jedoch, dass es wahrscheinlich einfacher ist, wenn diese 5 Werte je Nummer und Hersteller untereinander eingefügt werden (z.B. Spalte G) und dann mit einer einachen Excel-Berechnung die gesuchten Steigungen usw. ausgegeben werden. Das muss dann nicht in VBA gemacht werden. Das sollte mit Excel ja kein Problem sein, die Werte einfach fortlaufend durchzuberechnen.
Für das Einfügen eines neuen Herstellers, wenn ein neues Blatt eingefügt wird, habe ich bisher folgendes:
Sub Reifenauswahlliste_aktualisieren() Dim rngCol As Range, objF As Object, FirstFreeRow As Long, i As Long Dim isheet As Long With Worksheets("Tabelle1") Set rngCol = .Columns(2) 'Spalte B Set objF = rngCol.Find("*", SearchDirection:=xlPrevious, lookat:=xlPart) If Not objF Is Nothing Then FirstFreeRow = objF.Row + 1 i = FirstFreeRow For isheet = 4 To Sheets.Count - 1 If WorksheetFunction.CountIf(Range("A:A"), Sheets(isheet).Name) = 0 Then .Cells(i, 1).Value = Sheets(isheet).Name End If Next End If If WorksheetFunction.CountIf(Range("A:A"), Cells(i - 1, 1)) = 1 Then Cells(i - 1, 1).Value = "" End If End With End Sub Jetzt bezieht er sich zwar immer nur auf das Letzte Blatt, aber das reicht ja eigentlich. Nur bekomme ich es nicht vernünftig hin, dass er dann auch automatisch die Zahlen 1,2,3,4 in die Spalte B einfügt.
Und obwohl ich versucht habe, doppelte Werte zu vermeiden (WorksheetFunction.CountIf(Range("A:A"), Cells(i - 1, 1)) = 1) Then Cells(i - 1, 1).Value = "")
habe ich trotzdem immer wieder das letzte Blatt doppelt in dieser Liste.

Anzeige
mir noch immer unklar ...
31.03.2015 16:08:50
der
Hallo Robin,
... Du schreibst jetzt: "Wie man sehen kann, sind es für die Nr.1,2,3 und 4 immer die gleichen zugehörigen Herstellerwerte (Sprich 6-10,12-16 usw.)" ... sorry ich sehe es nicht.
Weiter schreibst Du: "Ich denke jedoch, dass es wahrscheinlich einfacher ist, wenn diese 5 Werte je Nummer und Hersteller untereinander eingefügt" Nun also 5 Werte?
Ich stell den Thread mal auf offen. Vielleicht sehen ja andere besser, was Du anstrebst.
Gruß Werner
.. , - ...

AW: mir noch immer unklar ...
31.03.2015 16:22:14
Robin
Hallo Werner, sorry wenn ich mich so umständlich ausdrücke. Ich versuche es noch mal zu erklären:
Stell es dir einfach so vor: Jeder Hersteller hat vier verschiedene Produkte (Daher die Nr.1,2,3,4). Diese vier Produkte haben gewisse Spezifikationen. Diese stehen in den Tabellenblättern Hersteller1,Hersteller2 usw..
Bezüglich: "... Du schreibst jetzt: "Wie man sehen kann, sind es für die Nr.1,2,3 und 4 immer die gleichen zugehörigen Herstellerwerte (Sprich 6-10,12-16 usw.)" ... sorry ich sehe es nicht. "
Klicke mal auf C2, C3... Ich benötige also für die Nr.1 immer die Werte im Range A6:B10, für die Nr.2 im Range A12:B16... Das wiederholt sich für alle Hersteller.
Am einfachsten wäre es wohl, wenn diese Ranges einfach untereinander eingefügt werden.
Z.B. in G und H. Um das restiche kann ich mich in Excel da wohl selbst kümmern.
"Weiter schreibst Du: "Ich denke jedoch, dass es wahrscheinlich einfacher ist, wenn diese 5 Werte je Nummer und Hersteller untereinander eingefügt" Nun also 5 Werte?"
Fünf Werte sind unglücklich ausgedrückt, ich beziehe mich da auf die Ranges A6:B10, also besser gesagt 5 Zeilen.
Also um es noch mal kurz zusammenzufassen:
Ich benötige vier Wertebereiche (ranges) aus den Hersteller-Tabellenblättern. Diese vier Wertebereiche haben immer die gleiche Größe (5 Zeilen, 2 Spalten) und sind immer am gleichen Ort A6:B10, A12:B16 usw.
Ich benötige jetzt aus allen Hersteller-Tabellenblättern diese Werte.
Und dafür wäre es wohl am einfachsten, diese in der Auswahl ab G einzutragen. Einfach untereinander.
Vielen Dank und sorry für die Mühe

Anzeige
nur teilweise klarer ...
31.03.2015 16:42:24
der
Hallo Robin,
... abgesehen davon, dass ich in den Hersteller-Tabellenblätter rein visuell Unterscheidung der Bereiche erkennen kann, gehe ich davon aus, dass dies so sei.
Aber neue Fragen:
Du hast jetzt momentan in C2:D13 die richtigen von Dir angestrebten Ergebnisse oder nicht?
Geht es Dir evtl. darum, dass Du die Formel in C2 bzw. D2 so schreiben möchtest, dass Du diese dann anschließend nach unten kopieren kannst? Das würde auch funktionieren ohne die Daten der Bereiche in G:H einzuschreiben.
Gruß Werner
.. , - ...

AW: nur teilweise klarer ...
01.04.2015 07:51:32
Robin
Hallo Werner,
vielleicht denken wir beide da etwas zu kompliziert.
Was ich benötige sind die Bereiche (A6:A10 usw.) von jedem Hersteller-Tabellenblatt unabhängig davon, was ich damit anstellen will. Am einfachsten wäre es dann, wenn diese Werte einfach untereinander weg in das 1. Blatt eingefügt werden.
Im Prinzip soll das Makro nur jedes Herstellerblatt anwählen (Also i = 3 to count.sheet - 1 als Beispiel) und dann immer die gleichen Bereiche anwählen und in mein 1. Tabellenblatt einfügen.
Von da aus, würde ich mit diesen Werten selber rechnen, bzw. ich überlege mir was.
Gruß
Robin

Anzeige
mE nicht kompliziert ...VBA-Lösung gesucht ...
01.04.2015 10:54:26
der
Hallo Robin,
... kompliziert ist oftmals nur sich eindeutig gegenseitig zu verständigen ;-)
Ich schrieb Dir: "Geht es Dir evtl. darum, dass Du die Formel in C2 bzw. D2 so schreiben möchtest, dass Du diese dann anschließend nach unten kopieren kannst?" Mir hätte darauf ein nein oder ein ja gereicht. Eine Formellösung wäre mir möglich gewesen.
Aus Deiner Antwort entnehme ich jetzt jedoch, dass Du das mit einem Makro gelöst haben möchtest. Wenn dem so ist, dann muss ich Dir mitteilen, dass ich mich grundsätzlich aus VBA_Lösungsangeboten außen vorhalte, da mich (zumindest momentan) persönlich nur Formellösungen interessieren.
Ich stell den Thread deshalb auf offen.
Gruß Werner
.. , - ...

Anzeige
AW: mE nicht kompliziert ...VBA-Lösung gesucht ...
01.04.2015 10:57:43
Robin
Eine Excel-Lösung würde prinzipell natürlich auch gehen.
Dort müsste man wohl mit einem SVERWEIS über mehrere Tabellen gehen, damit man auf die Werte in den anderen Blättern zugreifen kann. Da habe ich leider absolut keine Ahnung.

nun dann doch eine Formel gewünscht ...
01.04.2015 12:14:52
der
Hallo Robin,
... nachfolgende Formel in C2 nach unten kopieren. Die Formel in D2 kannst Du nun sicher analog der in C2 nachgestalten.
Allerdings ich hätte es nicht so gelöst. Sondern die Auswertung zunächst in der Hersteller-Tabellenbättern analog vorgenommen und deren Ergebnisse in das "Auswahl"-Tabellenblatt geholt.
 ABC
1TabellenblattnameNr.Steigung
2Hersteller11233
3 2-175
4 3-327
5 4-1124
6Hersteller21-898
7 2-2030
8 3-2210
9 4-759
10Hersteller31-263
11 2-1240
12 3-2203
13 4-2175
14   

Formeln der Tabelle
ZelleFormel
C2=WENN(B2="";"";STEIGUNG(INDEX(INDIREKT(VERWEIS(9;1/(A$1:A2<>""); A:A)&"!$B:$B"); INDEX({6;12;16;24};1+REST(ZEILE(A1)-1;4))):INDEX(INDIREKT(VERWEIS(9;1/(A$1:A2<>""); A:A)&"!$B:$B"); INDEX({6;12;16;24};1+REST(ZEILE(A1)-1;4))+4); INDEX(INDIREKT(VERWEIS(9;1/(A$1:A2<>""); A:A)&"!$A:$A"); INDEX({6;12;16;24};1+REST(ZEILE(A1)-1;4))):INDEX(INDIREKT(VERWEIS(9;1/(A$1:A2<>""); A:A)&"!$A:$A"); INDEX({6;12;16;24};1+REST(ZEILE(A1)-1;4))+4)))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
AW: nun dann doch eine Formel gewünscht ...
01.04.2015 12:49:17
Robin
Vielen Dank erstmal für die Lösung.
Zu deinem Lösungsvorschlag: Das könnte ich mir prinzipiell auch so vorstellen. Nur wie würde ich es da hinbekommen, dass sich das immer erweitert, wenn ich ein neues Tabellenblatt einfüge? Da komme ich doch um VBA auch nicht rum?

geht auch dann ...
01.04.2015 13:10:38
der
Hallo Robin,
... und auch ohne VBA. Sobald in Spalte A ein Tabellenblattname neu hinzukommt, wird dieses Tabellenblatt auch ausgewertet, wenn Du ein Tabellenblatt gleichen Namens hinzugefügt hast und Du die Formel weit genug nach unten kopiert hast. Übrigens kann man die Namen in Spalte A auch mittels Formel generieren lassen. Dann betsht auch nicht die Gefahr, dass Du Dich irgendwo verschrieben hast.
Gruß Werner
.. , - ...
Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige