Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
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

VBA Copy & Paste Mappenübergreifend

VBA Copy & Paste Mappenübergreifend
03.04.2019 09:40:41
Frank_S
Als bisher nur stiller Mitleser und Nutzer, habe ich nun selbst mal eine Frage.
Ich möchte abends beim Schließen einer Mappe (mit div Userformen), die tagsüber eingegebenen Daten aus dieser Mappe kopieren und in eine Art Sammelmappe einfügen.
Aus meinen Recherchen hier und im Internet weiß ich, dass man beim Benutzen von .Cells immer exakt reverenzieren muss.
Das habe ich (denke ich wenigstens) ausreichend getan. Trotzdem gibt es Fehler.
Anbei der betreffende Codeschnipsel. Die Zielmappe heißt Protokolle.xlsx und befindet sich in _
einem Unterordner der Quellmappe.

Sub Export()
Dim erste_freie_Zeile_source As Integer
Dim erste_freie_Zeile_target As Integer
Dim BlattZiel As Worksheet
Dim BlattQuelle As Worksheet
If IsWorkbookOpen("Protokolle.xlsx") Then
'MsgBox "OFFEN"
Else
'MsgBox "Nicht offen"
Workbooks.Open ThisWorkbook.Path & "\Protokolle\Protokolle.xlsx"
End If
Set BlattQuelle = ThisWorkbook.Worksheets("tabAuswertung")
Set BlattZiel = Workbooks("Protokolle.xlsx").Worksheets("tabAuswertung")
erste_freie_Zeile_target = BlattZiel.Cells(Rows.Count, 2).End(xlUp).Row + 1
erste_freie_Zeile_source = BlattQuelle.Cells(Rows.Count, 2).End(xlUp).Row
With BlattQuelle
.Range("A3", Cells(erste_freie_Zeile_source, 59)).Copy Destination:=BlattZiel.Range( _
BlattZiel.Cells(erste_freie_Zeile_target), 1)
End With
Workbooks("Protokolle.xlsx").Save
Workbooks("Protokolle.xlsx").Close True
ThisWorkbook.Save
End Sub

Die Zeile zwischen With und End With produziert Fehler 1004.
Für Hilde wäre ich sehr dankebar.
Frank S.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 09:57:37
Torsten
Hi Frank,
probier mal

Dim letzte_Zeile_source as Integer
With BlattQuelle
letzte_Zeile_source = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("A3:" & "BG" & letzte_Zeile_source).Copy Destination:=BlattZiel.Cells( _
erste_freie_Zeile_target), 1)
End With
Gruss Torsten
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 10:43:25
Frank_S
https://www.herber.de/bbs/user/128876.jpg
Hallo Torsten,
vielen Dank.
Doch leider produziert dein Code trotz Namensanpassung, einen Syntaxfehler.Irgendwo schein eine Klammer zu fehlen. Habe Klammern gezählt und an diversen Stellen eingefügt. Fehler bleibt.
Gruß, Frank
Anzeige
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 10:49:07
Daniel
Hallo Frank,
du musst das schon genau kopieren, die Zeilen müssen untereinander stehen. Da du letzte_Zeile_source scshon darüber befüllst, kannst du es hier auch weglassen.
With BlattQuelle
.Range("A3:BG" & letzte_Zeile_source).Copy Destination:=BlattZiel.Cells( _
erste_freie_Zeile_target), 1)
End With
Gruß
Daniel
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 12:10:00
Frank_S
Hallo Torsten,
genau kopiert habe ich, nur zur Sicherheit die Zeilenumbrüche entfernt, bzw. neu erstellt. Es bleibt ROT und erwartet entweder weitere benannte Parameter oder es ist ein Syntaxfehler.
Es scheint also wirklich nicht zu funktionieren, wie ich es gerne hätte. Muss ich es wohl lassen und mir was komplett neues einfallen lassen.
Frank
Anzeige
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 12:14:49
Frank_S
Alles probiert,
exakte Kopie hier vom Forum (nur falsche Variablennamen verbessert) und auch Unterstriche/Zeilenumbrüche entfernt, weil die manchmal bei copy&paste Fehler erzeugen. Es hilft alles nichts, Code bleibt rot und zeigt Fehler an. Je nach Versuch, entweder Syntax oder fehlender benannter Parameter.
Gruß, Frank
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 12:39:37
Daniel
Wenn du wirklich alles so eingefügt hast, wie in meinem letzten Eintrag, liegt es nicht an der Zeile. Bei Selbsteinschätzung VBA gut wundere ich mich über diese grundsätzlichen Probleme (deine Anweisungen vom Originalcode hatten wirklich grundsätzliche Fehler bei den Zellbezügen). Wenn du die Mappe nicht hochladen willst, werden wir wohl keine Lösung finden.
Anzeige
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 12:50:15
Torsten
Hallo Frank,
teste nochmal meinen Code von 11:20.
Der hat bei mir in einem Test fehlerfrei funktioniert
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 14:09:09
Daniel
Fehler gefunden, da haben wir den Wald vor lauter Bäumen nicht gesehen... Eine Klammer zu viel:
With BlattQuelle
.Range("A3:BG" & letzte_Zeile_source).Copy Destination:=BlattZiel.Cells( _
erste_freie_Zeile_target, 1)
End With

AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 15:20:22
Frank_S
Na aber Hallo,
vielen, vielen Dank. Jetzt funktioniert es. Musste zwar eine Variable vom Namen her anpassen, aber danach lief es.
Kann mich nur noch einmal gaaaaaanz herzlich bedanken.
Anbei hier noch einmal der funktionierende Code, inkl. Function:
Viele Grüße, Frank S.
Sub Export()
Dim erste_freie_Zeile_source As Integer
Dim erste_freie_Zeile_target As Integer
Dim letzte_Zeile_source As Integer
Dim BlattZiel As Worksheet
Dim BlattQuelle As Worksheet
If IsWorkbookOpen("Protokolle.xlsx") Then
'MsgBox "OFFEN"
Else
'MsgBox "Nicht offen"
Workbooks.Open ThisWorkbook.Path & "\Protokolle\Protokolle.xlsx"
End If
Set BlattQuelle = ThisWorkbook.Worksheets("tabAuswertung")
Set BlattZiel = Workbooks("Protokolle.xlsx").Worksheets("tabAuswertung")
erste_freie_Zeile_target = BlattZiel.Cells(Rows.Count, 2).End(xlUp).Row + 1
erste_freie_Zeile_source = BlattQuelle.Cells(Rows.Count, 2).End(xlUp).Row
With BlattQuelle
.Range("A3:BG" & erste_freie_Zeile_source).Copy Destination:=BlattZiel.Cells( _
erste_freie_Zeile_target, 1)
End With
Workbooks("Protokolle.xlsx").Save
Workbooks("Protokolle.xlsx").Close True
ThisWorkbook.Save
End Sub

Function IsWorkbookOpen(strWB As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function

Anzeige
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 11:20:03
Torsten
Dann versuchs mal so:

Dim letzte_Zeile_source as Integer
With BlattQuelle
letzte_Zeile_source = .Cells(Rows.Count, 2).End(xlUp).Row
.Range("A3:" & "BG" & letzte_Zeile_source).Copy BlattZiel.Cells(erste_freie_Zeile_target),  _
1)
End With

AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 13:33:54
Frank_S
Sorry, das gleiche. Direkt beim Einfügen spring der Code auf ROT. Markiert ist die komplette Zeile nach "(xlUp).Row" ist rot. Davor und danach stimmt es anscheinend. Wie oder wo könnte ich die Mappe hochladen?
AW: VBA Copy & Paste Mappenübergreifend
03.04.2019 13:37:14
Frank_S
Habe versucht, die Mappe hochzuladen. Das wird nichts, da Mappe ca 700kB groß, aber hier nur 300kB erlaubt sind.
Anzeige
Hier bin ich
03.04.2019 16:39:28
Hilde
Für Hilde wäre ich sehr dankebar.
AW: Hier bin ich
03.04.2019 16:42:31
Daniel
Danke, musste herzhaft lachen!

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige