Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufzeitfehler 1004 bei Copy/Paste über Button

Laufzeitfehler 1004 bei Copy/Paste über Button
23.02.2007 09:11:00
Mathias
Hallo,
ich möchte aus dem Tabellenblatt "Aktuelle Werte" automatisch die beschriebenen Zellen per Button kopieren und am Ende des Tabellenblattes "Historie" einfügen. Also nicht an eine feste Position in "Historie", sondern dynamisch immer am Ende der Liste in "Historie".
Ich hab es zuerst mit Range.select probiert, erhalte da aber auch Laufzeitfehler 1004. Nach ausführlicher Suche in diesem Forum habe ich verschiedene Vorschläge probiert (z.B. CommandButton2.TakeFocusOnClick = False) und auch unten stehenden Code, es kommt aber immer wieder an der gleichen Stelle der Laufzeitfehler 1004 (Nämlich dort, wo das ermittelte Ende des Tabellenblattes "Historie", hier die Variable "Sp", zugewiesen wird. Eine absolute Positionierung funktioniert aber. Trotzdem soll die Kopie ja immer am Ende einer schon vorhandenen Liste in "Historie" zugefügt werden.)
Ohne Button funktioniert es übrigens hervorragend, es soll aber unbedingt der Button verwendet werden.

Private Sub CommandButton2_Click()
CommandButton2.TakeFocusOnClick = False
Zeilen = Range("A1").End(xlDown).Row
Spalten = Range("A1").End(xlToRight).Column
Dim rngSource As Range, rngTarget As Range
Dim Sp As Integer
Set rngSource = Workbooks("Datei.xls").Worksheets("Aktuelle Werte").Range(Cells(1, 1), _
Cells(Zeilen, Spalten))
Sp = Workbooks("Datei.xls").Worksheets("Historie").Range("A1").End(xlDown).Row
Set rngTarget = Workbooks("Datei.xls").Worksheets("Historie").Range(Cells(Sp, 1), _
Cells(Zeilen, Spalten))
rngSource.Copy rngTarget
End Sub

Ich bin für jede Hilfe dankbar!
Viele Grüße,
Mathias

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

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004 bei Copy/Paste über Button
23.02.2007 10:03:00
Harald
Moin Matthias,
kurz aus der Hüfte fallen mir da gleich mehrere Dinge auf.
1. Dimensionierung für Zeilen, Spalten fehlt, Sp nur als Integer ( nur bis 32767 bei über 65000 Zeilen)
Also Dim Zeilen as long, Sp as long, Spalten as integer
2. letzte Zeilen zählt man üblicherweise von unten nach oben, letzte Spalte von rechts nach links
Zeilen = cells(rows.count, 1).end(xlup).row
Spalten = cells(1, columns.count).end(xltoleft).column
(und wieso beziehst Du dich da nicht auf ein Arbeitsblatt, wie bei Sp)
Für die erste freie Zelle einfach .row + 1 oder .column + 1
3. Sobald ein Diagramm u.ä. in einem der Blätter auftaucht, läufst Du mit Worksheets in Probleme.
Besser Sheets verwenden
4. wie stellst Du sicher, dass rngSource und rngTarget die gleiche Größe haben ?
Denn nur dann funzt copy
Oder du gibts als rngTarget nur die erste freie Zelle und keinen definierten Bereich an
Also
Set rngTarget = Workbooks("Datei.xls").Sheets("Historie").Cells(Sp, 1)
Gruss Harald
Anzeige
AW: Laufzeitfehler 1004 bei Copy/Paste über Button
23.02.2007 10:14:49
Peter
Hallo Mathias,
versuch es mal so: anstelle von
Set rngSource = Workbooks("Datei.xls").Worksheets("Aktuelle Werte").Range(Cells(1, 1), _
Cells(Zeilen, Spalten))
gib bei den Cells ebenfalls das Worksheet an
Set rngSource = Workbooks("Datei.xls").Worksheets("Aktuelle Werte").Range(Worksheets("Aktuelle Werte").Cells(1, 1), _
Worksheets("Aktuelle Werte").Cells(Zeilen, Spalten))
und das bei beiden Range(Cells die du verwendest.
Einfacher lesbar würde es durch
Dim WkSh-Q As Worksheet
WkSh_Q = Worksheets("Aktuelle Werte")
Set rngSource = Workbooks("Datei.xls").WkSh_Q.Range(WkSh_Q.Cells(1, 1), _
WkSh_Q.Cells(Zeilen, Spalten))
Gruß Peter
Anzeige
AW: Laufzeitfehler 1004 bei Copy/Paste über Button
23.02.2007 10:53:43
Mathias
Hallo,
vielen Dank an Harald und Peter für die Tipps!
Leider hat nichts geholfen, ich hab alles ausprobiert, und es scheitert jedesmal an der gleichen Stelle.
Ich beobachte den Programmablauf und die Werte der Variablen mit dem Debugger, und bis zum Abbruch funktioniert auch alles, die Variablen haben die korrekten Werte, der richtige Bereich wird markiert und kopiert, aber beim einfügen in das andere Tabellenblatt bricht das Programm mit dem Fehler ab: Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler.
Ich denke es hängt irgendwie mit dem Button zusammen, denn ohne Button, rein als Makro aufgerufen, funktioniert das Programm tadellos.
Vielleicht habt ihr noch eine Idee?
Vielen Dank jedenfalls für die Tipps!
Anzeige
AW: Laufzeitfehler 1004 bei Copy/Paste über Button
23.02.2007 12:00:50
Harald
Hi Matthias,
ich krieg die Fehlermeldung auch nicht weg aber am Button liegts nicht.
Sorry mehr kann ich nicht beisteuern.
Zudem hattest du vergessen, die Frage auf offen zu stellen ;-)
Gruss Harald
Problem gefunden aber kanns mir net erklären ^^
23.02.2007 16:01:57
Franc
Also, den Fehler bekomme ich nur, wenn ich zu dem Zeitpunkt wo der Bereich kopiert wird nicht das entsprechende Quellblatt aktiv habe. (Historie aktiv, Makro ausführen = Fehler) Wenn ich aber das Blatt Aktuelle Werte aktiv habe, gibt es kein Problem.
Versuch mal das hier. Funktioniert von jedem Blatt und aktiviert auch nach dem kopieren die zuletzt aktive Arbeitsmappe und Blatt.
Dim Zeilen As Long, Spalten As Integer, Zielzeile As Long, aktwb As String, aktsh As String
aktwb = ActiveWorkbook.Name
aktsh = ActiveSheet.Name
Workbooks("Datei.xls").Sheets("Aktuelle Werte").Activate
Zeilen = Cells(65000, 1).End(xlUp).Row
Spalten = Cells(1, 255).End(xlToLeft).Column
Zielzeile = Workbooks("Datei.xls").Sheets("Historie").Cells(65000, 1).End(xlUp).Row + 1
Range(Cells(1, 1), Cells(Zeilen, Spalten)).Copy Sheets("Historie").Cells(Zielzeile, 1)
Workbooks(aktwb).Sheets(aktsh).Activate
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige