Anzeige
Archiv - Navigation
1056to1060
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

Suche Routine für Datenverkehr zwischen Sheets

Suche Routine für Datenverkehr zwischen Sheets
03.03.2009 21:35:42
Gregor
Liebe Excelkönner,
da alles Suchen Bemühen vergeblich sind, hoffe ich sehr auf eure Hilfe für ein (in meinen Augen) einfaches Thema, das unbedingt gelöst werden muss:
Wie kann ich per Makro einzelne Daten zwischen Tabellenblättern "hin- und herschicken"? Ich habe folgende Anwendung:
Sheet1 ist eine Tabelle, bestehend aus 12 Spalten und rd. 900.000 Zeilen. Achtung: Für die anstehende Routinen werden diese Datensätze gefiltert, sodass es nur optisch aufeinanderfolgende Zeilen gibt.
Sheet2 ist ein komplexes Rechenwerk, bei dem für uns 6 (feste) Felder wichtig sind.
Aufgaben:
1. Es sollen aus jeder (gefilterten) Zeile von Sheet1 genau 4 Werte aus den immer gleichen Spalten in 4 der festgelegten Felder von Sheet2 kopiert werden (einzeln wegen des nächsten Schritts). Nach der Quasi-Eingabe dieser 4 Werte ändern sich die 2 Werte der 2 festgelegten Felder im Sheet2 (durch den komplexen Rechenprozess) - es sind also 6 Felder von Sheet2 betroffen.
2. Die geänderten 2 Werte der beiden Felder, sozusagen also die Ergebnisse, sollen nun als Werte (sie sind ja ein Formelergebnis) in 2 Spalten derselben Zeile von Sheet2 kopiert werden. Ergebnis ist dann, dass diese 2 Werte in Abhängigkeit der 4 Werte in derselben Zeile zu sehen sind.
3. Wenn diese Zeile sozusagen komplett ist (nach Übertrag der 2 Werte also) soll die nächste Zeile nach dem Muster von 1. und 2. "hin-und herkopiert" werden - solange, bis keine (gefilterten) Zeilen mehr unbearbeitet sind.
Als Muster https://www.herber.de/bbs/user/59961.xls hinterlege ich ein sample, das die Prozesse aufzeigt. Der Einfachheit halber habe ich eine banale Rechnung in Sheet2 (Produkt) und auch nur 2 Überträge von Sheet1 nach Sheet2 simuliert. Wenn dieses aber mit VBA funktioniert, kann ich das dann auf die reale Datei übertragen. (https://www.herber.de/bbs/user/59961.xls)
Also, sorry, wenn ich mich so lange erklärt habe, doch sehe ich gerade den Wald vor lauter Bäumen nicht... Denn eigentlich sollte ich das Ding schon gestern fertig haben - grrrr!
Es wäre SUPER, wenn ihr mir helft. DANKE im Voraus... Ciao, Gregor

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche Routine für Datenverkehr zwischen Sheets
03.03.2009 21:43:55
Josef
Hallo Gregor,
das wird aber ziemlich dauern bei so vielen Berechnungen.
Es wäre sicher einfacher und vor allem schneller, die Berechnungen direkt in VBA zu erledigen und nur die Ergebnisse zusammen mit den relevanten Werten in Tabelle2 zu schreiben.
Gruß Sepp

AW: Suche Routine für Datenverkehr zwischen Sheets
04.03.2009 08:33:53
Gregor
Servus Sepp,
Danke für Deine Anregung - ich hoffe nicht, dass die Berechnungen zu lange dauern!
Leider sehe ich aber keine Möglichkeit, die Berechnungen über VBA durchzuführen, weil erstens sind es Unmengen von abhängigen Berechnungen (derzeit rd. 5.000) und zweitens muss ich, um sämtliche Zahlen zu bekommen, diverse Optionen im Berechnungsblatt setzen können (für die analog die Datensätze gefiltert werden).
Dank' Dir aber für Deine Skepsis - wir werden's sehen!
Ciao, Gregor
Anzeige
AW: Suche Routine für Datenverkehr zwischen Sheets
04.03.2009 08:38:18
Josef
Hallo Gregor,
na dann kannst du ja Daniels Code nehmen.
Gruß Sepp

AW: Suche Routine für Datenverkehr zwischen Sheets
03.03.2009 22:10:34
Daniel
Hi
wenn ich es richtig verstanden habe, sollte es so funktioneren:

Sub Berechnen()
Dim Zelle As Range
With Sheets("Sheet2")
For Each Zelle In Range(Sheets("Sheet1").Cells(2, 1), _
Sheets("Sheet1").Cells(.Rows.Count, 1).End(xlUp)) _
.SpecialCells(xlCellTypeVisible)
.Range("B6").Value = Zelle.Offset(0, 1).Value
.Range("B7").Value = Zelle.Offset(0, 2).Value
.Range("B12").Value = Zelle.Offset(0, 3).Value
.Range("B13").Value = Zelle.Offset(0, 4).Value
Application.Calculate '--- nur erforderlich, fall du die Berechnung auf Manuell  _
gestellt hast
Zelle.Offset(0, 5).Value = .Range("B10").Value
Zelle.Offset(0, 6).Value = .Range("B16").Value
Next
End With
End Sub


und falls es länger dauert, macht das auch nichts, ich habe meinen Rechner auch schon übers Wocheende mit einem Excelmakro laufen lassen.
Gruß, Daniel

Anzeige
AW: Suche Routine für Datenverkehr zwischen Sheets
04.03.2009 08:49:20
Gregor
Hey Daniel, so geht's nicht! Da sitze ich beinahe zwei Tage, also stundenlang, terrorisiere meinen Kopf und meine Umwelt - und dann kommt da einfach der Daniel, der *ruckzuck* die Lösung aller Fragen herüber ruft.
Mann, ich bin begeistert!!! Erstmal tausend Dank für Deinen Eintrag! Ich habe Deine Prozedur im sample probiert und sie klappt hervorragend. Auch bei gefilterten Werten. Und herrje, der Code sieht recht simpel aus, was mich wieder davon überzeugt: Für spezielle Dinge braucht es Spezialisten! Ich habe also dem Forumsbetreiber für die Ermöglichung dieser Kommunikation zu danken!
Ich werde später die Prozedur in das reale Szenario umsetzen. Und ich bin gespannt, wie lange die Datensätze wirbeln werden - notfalls werden's halt Overnightaktionen. Hauptsache, ich muss die 1.000.000 Datensätze nicht manuell eingeben...
Daniel, noch einmal DANKE für Deinen super Support! Falls es Schwierigkeiten gibt, dürfte ich mich nochmal melden, oder?
Ciao, und Allen den schönsten Mittwoch dieser Woche! Gregor
Anzeige
erledigt oT
04.03.2009 14:34:11
zu
zu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige