Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1480to1484
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 Kopieren aus Identischer Datei

VBA Kopieren aus Identischer Datei
05.03.2016 16:25:10
Sven
Hallo Experten,
ich benötige ein Makro welches Inhalte aus einer zuvor bestimmten dabei kopiert und in die neue einfügt.
Beide Dateien sind identisch und es sollen nur bestimmte Zellen ( Werte ) kopiert werden .
Sub Schaltfläche3_Klicken()
Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename
If strDatei  False Then
Set wks = Workbooks.Open(strDatei).Sheets(2) ' hier wird die Quelldatei geöffnet
Else
Exit Sub
End If
Windows("Vorlage1.xls").Activate ' hier werden die werte kopiert jedoch weis ich nicht wie ich  _
es anstellen soll, das die werte aus der zuvor gewählten dabei genommen werden .
Range("C7:P21").Select
Selection.Copy
Windows("Vorlage.xls").Activate
Range("C7:P21").Select
ActiveSheet.Paste
wks.Parent.Close False
Set wks = Nothing
End Sub
Kann da jemand helfen ?
LG
Sven

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 16:32:23
Hajo_Zi
Hallo Sven,
Range("C7:P21").Copy Workbooks("Vorlage.xls").Worksheets("Tabelle 1234"). Range("C7")

AW: VBA Kopieren aus Identischer Datei
05.03.2016 16:36:34
Sven
Hallo Hajo,
danke für die Schnelle Antwort .
Die Lösung funktioniert so ganz gut, jedoch sind die Namen der Dateien unterschiedlich und da ich die ja im vorherigen dialog Fenster öffne,
muss sich die Kopierfunktion auf die Geöffnete Tabelle beziehen . Geht das Irgendwie ?

AW: VBA Kopieren aus Identischer Datei
05.03.2016 16:38:42
Hajo_Zi
mein Code bezieht sich auf die zuletzt geöffnete, Aktive Arbeitsmappe.
Gruß Hajo

Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 16:41:40
Sven
ich weis, aber die Arbeitsmappe die geöffnet wird heist ja immer anders .
Kann man da statt Vorlage.XLS , zb active workbook hinsetzen , so das die geöffnete damit gemeint ist ?
Gruß
Sven

AW: VBA Kopieren aus Identischer Datei
05.03.2016 16:46:32
Hajo_Zi
ja
ich würde aber Sheet benutzen.
Gruß Hajo

AW: VBA Kopieren aus Identischer Datei
05.03.2016 17:26:04
Sven
Also hab es jetzt so gemacht .
Range("C7:P21").Copy Workbooks("ActiveWorkbook").Worksheets("Januar").Range("C7") 'hier dann die Daten kopieren
Bekomme aber nen laufzeitfeiler 9, Index außerhalb des Bereichs .
Gruß
Sven

Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 17:28:35
Hajo_Zi
ich vermute mal das ActiveWorkbook hat nicht den namen "ActiveWorkbook"
Gruß Hajo

AW: VBA Kopieren aus Identischer Datei
05.03.2016 17:34:13
Sven
Jupp das war die Lösung :-)
Aber kann man das so einstellen, das anstatt Vorlage1234 der jeweilige name der Aktuellen Datei steht ? ( wenn der Dateinamen geändert wird dann passt ja das Makro nicht mehr .
Sub Schaltfläche4_Klicken()
Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename
If strDatei  False Then
Set wks = Workbooks.Open(strDatei).Sheets("Januar")
Else
Exit Sub
End If
Range("C7:P21").Copy Workbooks("Vorlage1234").Worksheets("Januar").Range("C7")
wks.Parent.Close False
Set wks = Nothing
End Sub

Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 17:36:52
Hajo_Zi
Du willst aus der aktuellen Datei in die aktuelle Datei kopieren, das habe ich nicht so aus dem ersten Beitrag gelesen.
Da ich die Aiufgabe falsch erfast habe bin ich raus.
Gruß Hajo

AW: VBA Kopieren aus Identischer Datei
05.03.2016 17:43:49
Sven
Hab die Lösung gefunden :-)
Jedoch ist mir aufgefallen , das auch die Formatierung mit kopiert werden und ich möchte bloß die werte ohne zellformatierung.
Kann man das noch ändern , oder ist das zu komplex ?
LG
Sven
Sub Schaltfläche4_Klicken()
Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename
If strDatei  False Then
Set wks = Workbooks.Open(strDatei).Sheets("Januar")
Else
Exit Sub
End If
Range("C7:P21").Copy ThisWorkbook.Worksheets("Januar").Range("C7")
wks.Parent.Close False
Set wks = Nothing
End Sub

Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 17:55:19
snb

Sub Schaltfläche4_Klicken()
with Application.filedialogs(1)
if .show then
with GetObject(.selecteditems(1))
ThisWorkbook.sheets("Januar").Range("C7:P21")=.sheets("Januar").Range("C7:P21").Value
.Close 0
end with
end if
end with
End Sub

AW: VBA Kopieren aus Identischer Datei
05.03.2016 18:02:36
Sven
Hi snb,
das Funktioniert leider garnicht.
LG
Sven

AW: VBA Kopieren aus Identischer Datei
05.03.2016 17:53:35
Werner
Hallo Sven,
das müsste doch mit
Range("C7:P21").Copy
ThisWorkbook.Worksheets("Januar").Range("C7:P21").PasteSpecial Paste:=xlValues
gehen.
Gruß Werner

Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 18:02:00
Sven
Hi Werner,
ne das geht nicht, da zeigt er mir nen Fehler an .
LG
Sven

AW: VBA Kopieren aus Identischer Datei
05.03.2016 18:55:16
Werner
Hallo Sven,
also wenn ich dich richtig verstanden habe, dann hast du eine Datei offen, deine Zieldatei in die du kopieren willst. Dann willst du eine Datei öffnen, deine Quelldatei aus der die Daten kopiert werden.
Sub Schaltfläche3_Klicken()
Dim wbQuelle AS Workbook
Dim WbZiel AS Workbook
Dim wsQuellBlatt AS Worksheet
Dim wsZielBlatt AS Worksheet
Set wbZiel = ActiveWorkbook
Set wsZielBlatt = WbZiel.Sheets("Zielblatt") 'bitte anpassen
Dim strDatei AS String
strDatei = Application.GetOpenFilename
If strDatei  False Then
Workbooks.Open(strDatei) ' hier wird die Quelldatei geöffnet
Set wbQuelle = ActiveWorkbook 'nach Öffnen sollte diese Datei active sein
'Set wbQuelle = Workbook(strDatei) 'Alternative für obige set-Anweisung
Set wsQuellBlatt = wbQuelle.Sheets("Quellblatt") 'bitte anpassen
Else
Exit Sub
End If
wbQuelle.wsQuellBlatt.Range("C7:P21"). Copy
WbZiel.wsZielBlatt.Range("C7:P21"). PasteSpecial Paste:=xlValues
wbQuelle.Close False
Set wbQuelle = Nothing
Set wsQuellBlatt = Nothing
Set wbZiel = Nothing
Set wsZielBlatt = Nothing
End Sub
Probier es mal aus, aber bitte nicht mit deinen Original-Dateien - könnte nicht testen.
Gruß Werner

Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 19:46:21
Sven
Hi Werner danke für die Schnelle Antwort, aber er bringt mir die Fehlermeldung " Ziel Unverträglich "
und markiert das hier If strDatei False Then gelb.
LG
Sven

AW: VBA Kopieren aus Identischer Datei
05.03.2016 20:12:29
Werner
Hallo Sven,
Versuch mal
If strDatei  "" Then
Gruß Werner

AW: VBA Kopieren aus Identischer Datei
05.03.2016 20:18:14
Sven
Danke, aber leider geht das auch nicht :-(
Nutze jetzt das hier und muss damit leben das es evtl. zu Formatänderungen kommen kann.
Sub Schaltfläche4_Klicken()
Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename
If strDatei  False Then
Set wks = Workbooks.Open(strDatei).Sheets("Januar")
Else
Exit Sub
End If
Range("C7:P21").Copy ThisWorkbook.Worksheets("Januar").Range("C7")
Range("C25:P39").Copy ThisWorkbook.Worksheets("Januar").Range("C25")
Range("C43:P57").Copy ThisWorkbook.Worksheets("Januar").Range("C43")
Range("C61:P75").Copy ThisWorkbook.Worksheets("Januar").Range("C61")
Range("C79:P93").Copy ThisWorkbook.Worksheets("Januar").Range("C79")
Range("C97:P111").Copy ThisWorkbook.Worksheets("Januar").Range("C97")
wks.Parent.Close False
Set wks = Nothing
End Sub

Anzeige
AW: VBA Kopieren aus Identischer Datei
05.03.2016 20:44:26
Werner
Hallo Sven,
vielleicht komm ich morgen dazu mir die Sache nochmal anzuschauen. Bin jetzt auch nicht so der Experte, sollte aber lösbar sein. Ohne Computer und nur am Tablet für mich aber nicht.
Melde mich wieder.
Gruß Werner

AW: VBA Kopieren aus Identischer Datei
06.03.2016 10:10:26
Werner
Hallo Sven,
nochmal zu den Vorgaben:
Du hast eine DateiB, die ist geöffnet
Du hast eine DateiA, die ist geschlossen
Du willst Daten aus einem Tabellenblatt der geschlossenen DateiA in ein Tabellenblatt der geöffneten DateiB kopieren
Du willst nur Werte und keine Formeln kopieren.
Sub Schaltfläche3_Klicken()
Dim wbQuelle As Workbook
Dim wbZiel As Workbook
Dim wsQuellBlatt As Worksheet
Dim wsZielBlatt As Worksheet
Set wbZiel = ActiveWorkbook
Set wsZielBlatt = wbZiel.Sheets("Zielblatt") 'Blattname anpassen
Dim strDatei As String
Application.ScreenUpdating = False
strDatei = Application.GetOpenFilename
If strDatei  "" Then
Workbooks.Open (strDatei) ' hier wird die Quelldatei geöffnet
Set wbQuelle = ActiveWorkbook 'nach Öffnen sollte diese Datei active sein
Set wsQuellBlatt = wbQuelle.Sheets("Quellblatt") 'Blattname anpassen
Else
Exit Sub
End If
Workbooks(wbQuelle.Name).Sheets(wsQuellBlatt.Name).Range("C7:P21").Copy
Workbooks(wbZiel.Name).Sheets(wsZielBlatt.Name).Range("C7").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Workbooks(wbQuelle.Name).Close False
Workbooks(wbZiel.Name).Sheets(wsZielBlatt.Name).Range("C7").Select
Application.ScreenUpdating = True
Set wbQuelle = Nothing
Set wsQuellBlatt = Nothing
Set wbZiel = Nothing
Set wsZielBlatt = Nothing
End Sub
Gruß Werner

Anzeige
AW: VBA Kopieren aus Identischer Datei
06.03.2016 10:21:55
Sven
Hallo Werner ,
da hast dir ja richtig Zeit ans bei gebunden .
Kann ich das jetzt einfach erweitern um diese Ranges ?
Range("C7:P21").Copy ThisWorkbook.Worksheets("Januar").Range("C7")
Range("C25:P39").Copy ThisWorkbook.Worksheets("Januar").Range("C25")
Range("C43:P57").Copy ThisWorkbook.Worksheets("Januar").Range("C43")
Range("C61:P75").Copy ThisWorkbook.Worksheets("Januar").Range("C61")
Range("C79:P93").Copy ThisWorkbook.Worksheets("Januar").Range("C79")
Range("C97:P111").Copy ThisWorkbook.Worksheets("Januar").Range("C97")
Gruß
Sven

AW: VBA Kopieren aus Identischer Datei
06.03.2016 11:51:58
Werner
Hallo Sven,
kannst du schon. Wobei ich die Schreibweise mit wbQuelle.Name wsQuellBlatt.Name sowie WbZiel.Name und wsZielBlatt.Name bevorzugen würde. So liest sich der Code einfacher und du siehst gleich von welchem Workbook du in welches kopierst.
Zudem kopierst du ja wohl immer vom gleichen Blatt der QuellDatei ins gleiche Blatt der ZielDatei. Daher reicht es die beiden Blätter in den zwei Set-Anweisungen zu definieren. Z.B.:
Set wsZielBlatt = wbZiel.Sheets("Januar")
Sollte sich dann einmal etwas in Bezug auf das QuellBlatt und das ZielBlatt ändern, dann reicht es die beiden Set-Anweisungen der Blätter anzupassen.
Workbooks(wbQuelle.Name).Sheets(wsQuellBlatt.Name).Range("C25:P39").Copy _
Workbook(WbZiel.Name).Sheets(wsZielBlatt.Name).Range("C25")
Wobei so auch die Formatierungen und Formeln mit kopiert werden.
Sollte da auch nur der Zellinhalt ohne Formeln und Formate kopiert werden sollen dann wieder über
Workbooks(wbQuelle.Name).Sheets(wsQuellBlatt.Name).Range("C25:P39").Copy
Workbook(WbZiel.Name).Sheets(wsQuellBlatt.Name).Range("C25").Pasteecial Paste:=xlValues
Für die restlichen Bereiche dann analog.
Gruß Werner

Anzeige
AW: VBA Kopieren aus Identischer Datei
06.03.2016 12:47:36
Werner
Hallo Sven,
da ist mir doch bei der Kopiererei ein Fehler passiert.

Die Zeile
Workbook(WbZiel.Name).Sheets(wsQuellBlatt.Name).Range("C25").Pasteecial Paste:=xlValues
muss natürlich so aussehen
Workbook(WbZiel.Name).Sheets(wsZielBlatt.Name).Range("C25").Pasteecial Paste:=xlValues
Gruß Werner

AW: VBA Kopieren aus Identischer Datei
07.03.2016 20:42:49
Sven
Hallo Werner,
vielen Danke für deine Hilfe und deine Mühe :-)
Hat alles geklappt .
LG
Sven

AW: Gerne u. Danke für die Rückmeldung. o.w.T.
08.03.2016 10:12:24
Werner

AW: Gerne u. Danke für die Rückmeldung. o.w.T.
08.03.2016 13:37:18
Sven
Hallo Werner , nun ist doch noch etwas unerwartetes aufgetreten.
Wenn man beim Öffnen auf Abrechen drückt dann kommt folgende Fehlermeldung .
Wir konnten `Falsch.xlsx nicht finden. Wurde das Objekt vielleicht verschoben oder umbenannt ?
Was will der jetzt von mir ?
LG
Sven

AW: Gerne u. Danke für die Rückmeldung. o.w.T.
09.03.2016 08:04:59
Werner
Hallo Sven,
ersetze mal
If strDatei  "" Then
durch
If strDatei  False Then
Gruß Werner

AW: Gerne u. Danke für die Rückmeldung. o.w.T.
09.03.2016 08:15:30
Werner
Hallo Sven,
bzw. beides kombiniert
If strDatei  "" And strDatei  False Then
Gruß Werner

AW: Gerne u. Danke für die Rückmeldung. o.w.T.
09.03.2016 09:10:27
Werner
Hallo Sven,
vergiss alles von vorhin. Nimm das hier - das mit dem False hatten wir ja schon.
Public Sub test()
Dim wbQuelle As Workbook
Dim wbZiel As Workbook
Dim wsQuellBlatt As Worksheet
Dim wsZielBlatt As Worksheet
Set wbZiel = ActiveWorkbook
Set wsZielBlatt = wbZiel.Sheets("Zielblatt") 'Blattname anpassen
Dim strDatei As Variant
Application.ScreenUpdating = False
strDatei = Application.GetOpenFilename
If strDatei = 0 Then Exit Sub
Workbooks.Open (strDatei) ' hier wird die Quelldatei geöffnet
Set wbQuelle = ActiveWorkbook 'nach Öffnen sollte diese Datei active sein
Set wsQuellBlatt = wbQuelle.Sheets("Quellblatt") 'Blattname anpassen
Workbooks(wbQuelle.Name).Sheets(wsQuellBlatt.Name).Range("C7:P21").Copy
Workbooks(wbZiel.Name).Sheets(wsZielBlatt.Name).Range("C7").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Workbooks(wbQuelle.Name).Close False
Workbooks(wbZiel.Name).Sheets(wsZielBlatt.Name).Range("C7").Select
Application.ScreenUpdating = True
Set wbQuelle = Nothing
Set wsQuellBlatt = Nothing
Set wbZiel = Nothing
Set wsZielBlatt = Nothing
End Sub
Gruß Werner

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige