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

Daten mittels Makro von Blatt zu Blatt kopieren

Daten mittels Makro von Blatt zu Blatt kopieren
08.05.2006 15:11:04
Blatt
Hallo,
ich bin gerade dabei ein Makro zu schreiben und benötige eure Hilfe (vor meinem Nervenzusammenbruch ;-) ) - mit dem Makrorekorder scheints nicht richtig zu funktionieren. Vielleicht wißt ihr eine Lösung:
Es sollen Daten mittels Makro innerhalb einer Arbeitsmappe von Tabellenblatt zu einem ganz bestimmten Tabellenblatt (Name: "BERECHNUNG") kopiert werden.
Die Zellformate sind bei beiden identisch.
Der Grund weshalb ich nicht gerade das Tabellenblatt kopiere (was im Grunde einfacher wäre!)?: Es sind mehrere Tabellenblätter mit den Daten auf dem BERECHNUNG-Tabellenblatt verbunden (teils mit Makros und Teils mit Formeln). Ich benötige aber die Daten (des VORHER KOPIERTEN und UMBENANNTEN BERECHNUNG-Tabellenblattes) zur erneuten Berechnung auf den anderen Tabellenblätter. Bei einer Löschung des ursprünglichen Tabellenblattes "BERECHNUNG" und die Umbennung des kopierten Tabellenblattes in "BERECHNUNG" würde ich alles nur zerstören.
Auf dem sogenannten "UR-Tabellenblatt" (also mit dem Namen: BERECHNUNG) sollen die Daten von dem VORHER KOPIERTEN und UMBENANNTEN Tabellenblatt übertragen werden.
Ich gedenke ferner dieses Makro gleich mit in das BERECHNUNG-Tabellenblatt einzubauen, damit diese wiederum gleich mit kopiert wird.
Das Makro sollte eigentlich nur die Daten auf das BERECHNUNG-Tabellenblatt kopieren, von welchem Tabelllenblatt ich das Makro starte - macht es aber NICHT.
Die Daten (nur die ausgewählten Zellen!) dieses Tabellenblattes auf das BERECHNUNG-Tabellenblatt übertragen/kopieren.
BETROFFENE ZELLEN:
=A7:C41
=C5
=D8:E13
=G8:H13
=J8:K13
=F1:H4
=J1:L3
=E18:F18
=F22
=G27
=G38
=I19
=I20
=I22
=J42
Wie gesagt leider funkts nicht mit dem Makrorekorder: Beim 1. Blatt scheints scheinbar zu funktionieren - aber das Makro geht NUR von dem mit dem Makrorekorder zurückgespielten Tabellenblatt aus, von dem es einprogrammiert wurde. Das heißt das Makro nimmt NUR die Daten des einen kopierten Tabellenblattes - egal von welchem Tabellenblatt ich anfänglich das Makro starte - z.B. (Tabellenblatt:) "TEST1, AAA1" - bei meinem Folgetest wollte ich es weiterprobieren, das eigentlich das Tabellenblatt "Blöd, Hein2" kopiert werden sollte - aber es kommt wieder die Daten von:"TEST1, AAA1"
Hier das Makro:

Sub TabellenblattDatennachBERECHNUNG()
' TabellenblattDatennachBERECHNUNG Makro
' Makro am 08.05.2006 von Fuhr, Mikel  aufgezeichnet
Range("A7:C41").Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
Range("A7").Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("C5").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
Range("C5").Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("D8:E13").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
Range("D8").Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("G8:H13").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
Range("G8:H13").Select
ActiveSheet.Paste
Range("J8").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("J8:K13").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("F1:H1").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("F1:H4").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("J1:L1").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("J1:L3").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("E18").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("E18:F18").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("F22").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("F22").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("G27").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("G27").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("G38").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("G38").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("I19:L19").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("I19:L19").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("I20:L21").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("I20:L21").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("I22:L24").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("I22:L24").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
Range("I22:L24").Select
ActiveSheet.Paste
Range("J42").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets("TEST1, AAA1").Select
Range("J42").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
ActiveSheet.Paste
Range("A7").Select
End Sub

Ich bedanke mich im vorab für eure Unterstützung.
Gruß
Mikel

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten mittels Makro von Blatt zu Blatt kopiere
08.05.2006 16:04:10
Blatt
Hallo Mikel,
versuchs mal mit
Option Explicit
Sub kopie()
Dim arr(), iBer As Integer
arr = Array("A7:C41", "C5", "D8:E13", "G8:H13", "J8:K13", "F1:H4", "J1:L3", _
"E18:F18", "F22", "G27", "G38", "I19", "I20", "I22", "J42")
For iBer = 0 To UBound(arr)
ActiveSheet.Range(arr(iBer)).Copy Sheets("BERECHNUNG").Range(arr(iBer))
Next iBer
Sheets("BERECHNUNG").Activate
Range("A7").Select
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Daten mittels Makro von Blatt zu Blatt kopiere
08.05.2006 16:48:06
Blatt
Hallo Erich,
danke für Deine Hilfe, nun erhalte ich hierbei eine Debug-Fehlermeldung bei:
ActiveSheet.Range(arr(iBer)).Copy Sheets("BERECHNUNG").Range(arr(iBer))
Obwohl die Daten korrekterweise übertragen wurden. Ein paar andere Makros funktionieren plötzlich nicht. Dazu muss ich sagen: Ich kenn mich bei VBA so gut wie gar nicht aus. Vielleicht habe ich mich auch irgendwo verschrieben - da ich jetzt einen Termin habe, kann ich mich jetzt nicht gleich darum kümmern. Ich werde morgen weitermachen müssen.
Ich denke vom Ansatz her müsste die Lösung stimmen (soweit ich denn Ahnung von VBA habe!).
Danke Dir nochmals und schöne Grüße
Mikel
Anzeige
AW: Daten mittels Makro von Blatt zu Blatt kopiere
08.05.2006 17:35:13
Blatt
Hallo Mikel,
warum machst du es so spannend und schreibst nicht gleich dazu, wie die Fehlermeldung lautet? Das wär doch interessant...
Vielleicht hilft es auch, wenn du den Text deines Makros hier in deine Antwort kopierst.
Und was bedeutet "Ein paar andere Makros funktionieren plötzlich nicht."?
Was passiert, wenn du die Makros aufrufst? Tut sich nichts? Gibt es eine Fehlermeldung? (Wenn ja: Welche?)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
1.000 Dank nach Kamp-Lintfort
09.05.2006 14:41:37
Mikel
Hi Erich,
entschuldigung - gestern lief es bei mir echt hektisch - und wenn ich keine Ruhe hab...
Da ich nochdazu in einem Fremdrechner arbeite(n darf), aber keine Administratorrechte bekomme, kann ich leider auch die Excel-Arbeitsmappe nicht zum Server hochladen, damit Du diese direkt ansehen kannst.
Nun werde ich versuchen, Deine berechtigten Fragen zu beantworten:
Beim Versuch, das Makro (über eine Schaltfläche) zu aktivieren erscheint die Fehlermeldung:
Laufzeitfehler '1004':
Kann Teil einer verbundenen Zelle nicht ändern.
Dann klick ich auf Debuggen und es erscheint markiert im Debugger:
ActiveSheet.Range(arr(iBer)).Copy Sheets("BERECHNUNG").Range(arr(iBer))
Allerdings: Die Daten haben fast alle korrekterweise in das BERECHNUNG-Tabellenblatt übertragen! Die betrifft im besonderen die Zellen: "I19", "I20", "I22"und "J42" und den Umstand, das der Cursor nicht auf das BERECHNUNG-Tabellenblatt zurückspringt, wäre soweit eigentlich alles in Ordnung!
Ich habe dann den Debugger abgebrochen um meine gestrige Aussagen zu überprüfen (wg. denn anderen gestörten Makros)!:
Hier war nichts mehr. Offensichtlich ist mir hier ein Folgefehler unterlaufen.
Upps, jetzt hab ich doch noch den Fehler gefunden. Der Fehler lag eindeutig bei mir (ich habs geahnt!): Es sind die verbundenen Zellen!
Die korregierte Formel ist jetzt hier:
Option Explicit

Sub DatennachBERECHNUNGkopieren()
Dim arr(), iBer As Integer
arr = Array("A7:C41", "C5", "D8:E13", "G8:H13", "J8:K13", "F1:H4", "J1:L3", _
"E18:F18", "F22", "G27", "G38", "I19:L19", "I20:L21", "I22:L24", "J42")
For iBer = 0 To UBound(arr)
ActiveSheet.Range(arr(iBer)).Copy Sheets("BERECHNUNG").Range(arr(iBer))
Next iBer
Sheets("BERECHNUNG").Activate
Range("A7").Select
End Sub

"jetzt klappts auch mit den Nachbarn..."
Erich - ich danke Dir noch vielmals. Das nächste mal sperre ich mein Telefon und nagele die Tür zu.
Schöne Grüße nach Kamp-Lintfort
Mikel
Anzeige
Danke für Rückmeldung ...
09.05.2006 16:39:08
Erich
Hallo Mikel,
so kommt doch Licht ins Dunkel. Bei Meldungen der Art "Das funktioniert nicht." reagiere ich leicht etwas säuerlich - weil man damit recht wenig anfangen kann. Das war natürlich nicht bös gemeint!
Noch ne Bemerkung zu verbundenen Zellen: Damit kann man Tabellen verschönern, sie sind aber meist des Teufels, wenn man außer Ansehen und Drucken noch etwas anderes mit einem Tabellenblatt anstellen will.
Grüße von Erich aus Kamp-Lintfort

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige