18.01.2018, 00:14 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2018, 00:14 von Alooha.)
Hallo,
wegen neuer Berechnung von Daten, mit neuen Formeln, muß ich monatlich, für einige Monate, Daten dem WB Source mit den alten Formeln in das Wb Destination mit neuen Formeln kopieren. Da es sich um insgesamt 120 Blätter pro Monat handelt, was manuell sehr zeitraubend und mühselig wäre, drängt eine Lösung per VBA sich auf.
Die Struktur ist die gleiche: die Daten von F5:AC66 müssen kopiert werden.
Ausser dem Kopieren der Daten muss die Makro für jedes Blatt aus Source ein Blatt in Destination machen, und den Blattnamen in die Zelle U1 jedes Blattes einfügen. Es sollen alle Blätter kopiert werden ausser 3: von DoNotCopy 1 bis 3.
Wie müsste der Code aussehen, der dieser Aufgabe gerecht werden würde?
Hallo Wastl, es ist so, dass ich das freiwillig mache für eine uneigennützige Stiftung. So viel, was VBA anbelangt, habe ich nicht gelernt. Ok, ich versuche mal mein Glück und melde mich. Mit freundlichen Grüßen Alooha
warum willst du alles kopieren, du must ja wahrscheinlich auch neue Blaetter anlegen. Kopiere doch das ganze Blatt von der Source in Destination. Wenn du das mit dem Makro Recorder aufzeichnest und eine For Next Schleife bastelst geht das in Sekunden.
es ist so, dass ich in allen Blättern, in den alten wie den neuen, so wie im Beispiel ersichtlich, links einen Bereich habe wo Daten eingegeben werden (natürlich ganz andere als diese fiktiven), und rechts den Bereich wo die Daten verarbeitet werden. Da im neuen Blatt ein Teil der Berechnungen geändert hat, im Vergleich zum alten, ist es das einfachste, alle eingegebenen Daten von den alten in die neuen zu kopieren; es müssen auch neue Blätter angelegt werden
Ich habe schon eine Makro, das etwas ähnliches macht, aber, da das sehr(für mich jedenfalls) kompliziert auf gebaut ist, bin ich nicht imstande, es einfach als Basis zu nehmen. Ich werde jetzt mal beginnen, selbst etwas zu basteln und sehen, wie weit ich komme.
okay, mein Vorschlag, fang mal an zu basteln, stelle es ins Forum, und beschreibe wie weit du gekommen bist. Denke nicht du waerest dumm wenn es nicht klappt. Unser Gehirn lernt am schnellsten durch Versuch und Irrtum. Du kannst auch nicht Autofahren nur durch Theorie erlernen, du must das Steuer selbst in die Hand nehmen. Das die ersten Fahrversuche nicht die besten sind ist jedem bekannt. Wichtig ist damit anzufangen, es wenigstens zu probieren!!
In diesem Sinne, stelle uns deinen Code vor, dann helfen wir dir weiter ....
19.01.2018, 13:50 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2018, 13:50 von Alooha.)
Hallo "Gast 123",
besten Dank für das freundliche und wohl auch pädagogisch ziemlich wertvolle Angebot! Dann wollen wir mal! Bis später mit meinem wohl ziemlich mickrigen Code
ich habe jetzt die Kopieraktion für eine Datei und ein Blatt aufgezeichnet.
Was da noch fehlt:
* alle Dateien in "ToBeCopied" eine nach der anderen öffnen und mit allen die selbe Prozedur durchführen * den Kopiervorgang für alle Blätter in den Dateien durchführen das bedingt dass für jedes Sheet in den Quelldateien, aus dem Modellsheet in "Destination" eine Kopie angefertigt wird, ihr der Namen des Quellsheet's gegeben wir, dann die Daten kopiert werden
Leider weiss ich nicht wie vorgehen, um alle WBs in "ToBeCopied" zu kopieren und aus jedem Wb alle Sheets (ausser den 3) zu kopieren. Das kriege ich leider nicht hin.
anbei deine Beispieldatei mit überarbeitetem Code zurück. Dein Code habe ich in Modul1 Original gelassen. Für Kollegen die keine xlsm Dateien öffnen eine xlsx Version, Makros sind in der Tabellle.
Die Version öffnet Source und Destination, aber weil sich der Pfad, Ordner oder Datei Name ja aendern kann, man nicht jedesmal das Makro wieder umschreiben muss, habe ich alle wichtigen Daten in Eingabezellen gelegt. Dort kannst du sie jederzeit aendern.
Wie gefaellt dir meine Version. Einen Teil habe ich von dir abgeguckt! Deine Ideen waren nicht schlecht, alle Achtung!! Und da du selbst VBA lernen willst kannst du dir meinen Code in Ruhe ansehen. Er ist ja kein Geheimnis. Bin gespannt auf deine Rückmeldung.
vielen Dank, er sieht gut und professionell aus, aber er bleibt leider hängen, nachdem die WBs schon geöffnet sind und gibt die von dir vorgesehene Fehlermeldung aus, aber ich kann nicht verstehen, was dann noch geöffnet werden soll. Die Blätter die nicht kopiert werden sollen, heissen in Wirklichkeit anders (Résumé, Tableau, Codes) und die von dir angewandte Methode funktioniert nicht in dem Fall. Ich hatte nicht an solch eine Lösung gedacht, sonst hätte ich sie anders genannt. Ungewöhnlich scheint mir zu sein (weil ich das noch nie gesehen habe), dass du den Pfad und die WB Namen in dem Sheet eingegeben hast. Ist der Zweck davon, dass ich auf diese Weise leicht andere Sheets bearbeiten kann?