Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro Fehler

Makro Fehler
12.01.2007 12:31:10
Pascal
Hallo Zusammen
Um einen Zusammenzug von 2 Dateien in einer Dritten Datei zu bekommen, habe ich ein Makro aufgezeichnet, in dem ich die Zellen kopiert und in meiner Zusammenzugsdatei eingefügt habe.
Nun habe ich mir vorgestellt, dass wenn ich die Zusammenzugsdatei öffne und das Makro ausführe, alles übernommen wird.
Doch es kommen nur Fehlermeldungen oder gar nichts passiert. Ich habe keinerlei Makro Kenntnisse.
Könnte mir evtl. jemand helfen?
Hier das Makro:

Sub Zusammenzug()
' Zusammenzug Makro
' Makro am 12.01.2007 von pberrisch aufgezeichnet
' Tastenkombination: Strg+z
Range("A4:W87").Select
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
Range("A4:W87").Select
ActiveSheet.Paste
Windows("BEL Forecast.xls").Activate
Range("Y4:Y87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
Range("Y4:Y87").Select
ActiveSheet.Paste
Windows("BEL Forecast.xls").Activate
ActiveWindow.LargeScroll ToRight:=1
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 73
ActiveWindow.ScrollRow = 58
ActiveWindow.ScrollRow = 40
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 84
ActiveWindow.ScrollRow = 4
Range("AB4:AC87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
Range("AB65:AC171").Select
ActiveWindow.ScrollRow = 64
ActiveWindow.ScrollRow = 51
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 23
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 4
Range("AB4:AC87").Select
ActiveSheet.Paste
ActiveWindow.LargeScroll Down:=3
ActiveWindow.ScrollRow = 64
ActiveWindow.ScrollRow = 56
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 29
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 4
Windows("BEL Forecast.xls").Activate
ActiveWindow.ScrollRow = 70
ActiveWindow.ScrollRow = 65
ActiveWindow.ScrollRow = 56
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 4
Range("AE4:AF87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
Range("AE4:AF87").Select
ActiveSheet.Paste
Windows("BEL Forecast.xls").Activate
Windows("Zusammenzug Forecast.xls").Activate
Range("A4:W87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
Range("A88:W171").Select
ActiveSheet.Paste
Windows("PAB Forecasst.xls").Activate
ActiveWindow.ScrollRow = 78
ActiveWindow.ScrollRow = 66
ActiveWindow.ScrollRow = 59
ActiveWindow.ScrollRow = 54
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 44
ActiveWindow.ScrollRow = 36
ActiveWindow.ScrollRow = 31
ActiveWindow.ScrollRow = 30
ActiveWindow.ScrollRow = 29
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 22
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 4
Range("Y4:Y87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
ActiveWindow.ScrollRow = 151
ActiveWindow.ScrollRow = 146
ActiveWindow.ScrollRow = 144
ActiveWindow.ScrollRow = 141
ActiveWindow.ScrollRow = 137
ActiveWindow.ScrollRow = 131
ActiveWindow.ScrollRow = 129
ActiveWindow.ScrollRow = 127
ActiveWindow.ScrollRow = 126
ActiveWindow.ScrollRow = 122
ActiveWindow.ScrollRow = 118
ActiveWindow.ScrollRow = 116
ActiveWindow.ScrollRow = 112
ActiveWindow.ScrollRow = 111
ActiveWindow.ScrollRow = 110
ActiveWindow.ScrollRow = 109
ActiveWindow.ScrollRow = 102
ActiveWindow.ScrollRow = 99
ActiveWindow.ScrollRow = 95
ActiveWindow.ScrollRow = 92
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 85
ActiveWindow.ScrollRow = 77
ActiveWindow.ScrollRow = 72
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 68
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 85
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 92
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 99
ActiveWindow.ScrollRow = 101
ActiveWindow.ScrollRow = 103
ActiveWindow.ScrollRow = 105
ActiveWindow.ScrollRow = 103
ActiveWindow.ScrollRow = 102
ActiveWindow.ScrollRow = 101
ActiveWindow.ScrollRow = 99
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 95
ActiveWindow.ScrollRow = 93
ActiveWindow.ScrollRow = 91
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 80
ActiveWindow.ScrollRow = 77
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 71
Range("Y88:Y171").Select
ActiveSheet.Paste
Windows("PAB Forecasst.xls").Activate
Range("AB4:AC87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
ActiveWindow.ScrollRow = 147
ActiveWindow.ScrollRow = 142
ActiveWindow.ScrollRow = 132
ActiveWindow.ScrollRow = 124
ActiveWindow.ScrollRow = 116
ActiveWindow.ScrollRow = 110
ActiveWindow.ScrollRow = 108
ActiveWindow.ScrollRow = 107
ActiveWindow.ScrollRow = 105
ActiveWindow.ScrollRow = 99
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 70
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 66
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 72
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 77
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 84
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 85
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 95
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 105
ActiveWindow.ScrollRow = 106
ActiveWindow.ScrollRow = 105
ActiveWindow.ScrollRow = 103
ActiveWindow.ScrollRow = 102
ActiveWindow.ScrollRow = 101
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 99
ActiveWindow.ScrollRow = 98
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 95
ActiveWindow.ScrollRow = 94
ActiveWindow.ScrollRow = 93
ActiveWindow.ScrollRow = 92
ActiveWindow.ScrollRow = 91
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 85
ActiveWindow.ScrollRow = 84
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
Range("AB88:AC171").Select
ActiveSheet.Paste
Windows("PAB Forecasst.xls").Activate
Range("AE4:AF87").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zusammenzug Forecast.xls").Activate
Range("AE4:AG108").Select
ActiveWindow.ScrollRow = 106
ActiveWindow.ScrollRow = 105
ActiveWindow.ScrollRow = 101
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 94
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 85
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 80
ActiveWindow.ScrollRow = 78
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 74
ActiveWindow.ScrollRow = 75
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 77
ActiveWindow.ScrollRow = 79
ActiveWindow.ScrollRow = 80
ActiveWindow.ScrollRow = 81
ActiveWindow.ScrollRow = 82
ActiveWindow.ScrollRow = 83
Range("AE88:AF171").Select
ActiveSheet.Paste
Range("AD182").Select
End Sub

Vielen herzlichen Dank für die Bemühungen!
Gruss Pascal

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Fehler
12.01.2007 13:15:04
Harald E
Hallo Pascal,
ich schätze mal, bei der Aufzeichnung waren alle benötigten Dateien bereits geöffnet.
Bei der späteren Ausführung aber nicht.
D.h.
Zeichne das Makro aus der Zieldatei auf und öffne die benötigten Dateien nach!!Aufzeichnungsbeginn.
Sollten dann noch Probleme auftauchen, lösche vor dem nächsten Posting alle Zeile mit ScrollRow, ScrollColumn. Die benötigt dieser Code nicht.
Dadurch wird er zudem übersichtlicher.
Gruss Harald
wie lautet die Fehlermeldung?
12.01.2007 13:15:29
ChrisL
Hallo Pascal
Siehe Titel.
Ausserdem, alle Code-Zeilen mit
ActiveWindow.ScrollRow = ...
kannst du ersatzlos löschen.
Gruss
Chris
Anzeige
Noch eine Frage
12.01.2007 13:40:22
Pascal
Vielen Dank im Voraus für Eure Hilfe.
Laufen tut es nun jedenfals.
Nun aber ist das Problem, dass es alles richtig übernimmt, ausser den Bereich A88-W171. Obwohl ich beim erstellen als Ursprungsdatei den PAB Forecasst genommen habe, holt er den Bereich von dem BEL Forecast.
Im weiteren habe ich den Fehler, dass wenn ich alles nachträglich sortiere, mir bei erneuten ausfuhren des Makros alles doppelt kommt.
Kann ich nicht regeln, dass bei jeder Makroausführung alles neu importiert wird, und alles alte überschrieben?
Denn, in der Zusammenzugsdatei wird sowiso nichts mutiert.
Danke nochmal für die vorige Hilfe und herzlichen Dank für einen möglichen Input noch.
Gruss Pascal
Anzeige
AW: Noch eine Frage
12.01.2007 14:46:57
ChrisL
Hallo Pascal
Dein Problem ist für mich ohne Beispieldatei und Hintergrundwissen kaum resp. nur mit Aufwand nachvollziehbar. Es wäre deshalb toll, wenn du eine Beispieldatei laden könntest, wenn möglich bereits mit reduziertem Code (ohne Scroll etc.).
Ich würde dir ausserdem empfehlen, alle Select und Activate rauszunehmen. Je zu kopierenden Bereich kannst du die Anweisung auf eine einzige Code-Zeile reduzieren z.B.
Worksheets("Tabelle1").Range("A1:B2").Copy Worksheets("Tabelle2").Range("A3:B4")
Sobald der Code reduziert ist, sind auch Fehler und Probleme viel einfacher zu erkennen. Die Makroaufzeichnung ist leider sehr unübersichtlich viel zu umfangreich.
Gruss
Chris
Anzeige
AW: Noch eine Frage
12.01.2007 15:31:54
Pascal
Hallo Chris
Du findest die Datei unter:
https://www.herber.de/bbs/user/39610.xls

Die Datei https://www.herber.de/bbs/user/39611.xls wurde aus Datenschutzgründen gelöscht

Die Datei https://www.herber.de/bbs/user/39612.xls wurde aus Datenschutzgründen gelöscht

Ich habe alle drei hochgeladen.
Mit dem löschen bin ich definitiv kein Hirsch, ich verstehe nicht gerade, was genau gelöscht werden muss.
Ich wollte eigentlich nur die Zellen A4:W87 & Y4:Y87 & AB4:AC87 sowie AE4:AF87 von den beiden Dateien BEL Forecast und PAB Forecasst in den Forecast Zusammenzug kopieren. BEL Forecast von Zeile 4-87 und Forecast PAB von Zeile 88-171.
Am Schluss war mein Ziel, dass wenn ich das Makro laufen lasse, automatisch alles neu in die Zieldatei übernommen wird.
Hilft Dir das weiter?
Danke vielmal schon jetzt.
Gruss Pascal
Anzeige
AW: Noch eine Frage
12.01.2007 16:00:44
ChrisL
Hallo Pascal
Der Code geht davon aus, dass bereits alle 3 Mappen geöffnet sind.
Viel Spass und Gruss
Chris

Sub Kopiermakro()
Dim WS1 As Worksheet, WS2 As Worksheet, WS3 As Worksheet
Set WS1 = Workbooks("Forecast Zusammenzug.xls").Worksheets("Q1 2007")
Set WS2 = Workbooks("BEL Forecast.xls").Worksheets("Q1 2007")
Set WS3 = Workbooks("PAB Forecast.xls").Worksheets("Q1 2007")
WS2.Range("A4:W87").Copy WS1.Range("A4")
WS3.Range("A4:W87").Copy WS1.Range("A88")
WS2.Range("Y4:Y87").Copy WS1.Range("Y4")
WS3.Range("Y4:Y87").Copy WS1.Range("Y88")
WS2.Range("AE4:AE87").Copy WS1.Range("AE4")
WS3.Range("AE4:AE87").Copy WS1.Range("AE88")
End Sub

Anzeige
Laufzeitfehler
12.01.2007 16:13:30
Pascal
Hallo Chris
Langsam komme ich so glaube ich auch dahinter.
Vielen Dank für Deine Unterstützung.
KLEINES PROBLEM NOCH:
Beim ausführen (Alle Dateien habe ich aber geöffnet) kommt die Meldung:
Laufzeitfehler '9':
Index ausserhalb des gültigen Bereichs
Und wenn ich auf Debuggen gehe zeigt er mir Gelb markiert:
Set WS1 = Workbooks("Forecast Zusammenzug.xls").Worksheets("Q1 2007")
Was muss ich da noch ändern?
Nochmals Danke und Gruss
Pascal
AW: Laufzeitfehler
14.01.2007 11:59:58
ChrisL
Hallo Pascal
Vermutlich ist der Name der Mappe oder Tabelle falsch z.B. Zusammenfassung anstelle Zusammenzug o.ä.
Gruss
Chris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige