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

Arbeitsblatt aus Arbeitsmappe in andere Mappe kop.

Arbeitsblatt aus Arbeitsmappe in andere Mappe kop.
14.06.2019 12:42:54
Felix
Hallo zusammen,
Ich habe mal wieder ein kleines Problem mein Ziel zu erreichen.
Ich möchte ein Arbeitsblatt aus einer Arbeitsmappe in eine andere Arbeitsmappe kopieren. So lange ich die Zielarbeitsmappe von Hand öffne funktioniert dies auch problemlos. Wenn ich aber die Zielmappe über Workbooks.Open öffne, dann öffnet sich zwar die Zielmappe, jedoch kann mein Makro die Mappe nicht finden:
Laifzeitfehler '9'
Index außerhalb des gültigen Bereichs
Der Code dazu sieht so aus:

Sub CopySheets()
Dim Arbeitsmappe_Tank31_Testversion_1 As Workbook
Dim Datenbank_Tankbestand As Workbook
Dim Tankbestand As Worksheet
Datum = ActiveSheet.Range("C4")
Set Arbeitsmappe_Tank31_Testversion_1 = Workbooks("Arbeitsmappe_Tank 31_Testversion_1")
Set Tankbestand = Worksheets("Tankbestand")
Workbooks.Open Filename:="C:\Users\User\Desktop\Datenbank_Tankbestand.xlsm", UpdateLinks:=0
Set Datenbank_Tankbestand = Workbooks("Datenbank_Tankbestand")
Worksheets("Tankbestand").Copy After:=Datenbank_Tankbestand.Sheets(Datenbank_Tankbestand.Sheets. _
_
_
_
_
Count)
ActiveSheet.Name = Datum
End Sub

Das highlight wäre natürlich wenn der User gar nicht mitbekommt das sich die Excelliste geöffnet, gespeicher und wieder geschlossen hat. Aber das ist kein muss.
Ich wäre gerade schon asugesprochen dankbar wenn ich es schaffe die Daten automatisch zu übertragen ohne zuvor die Liste händisch öffnen zu müssen.
PS. ich habe ein noch ein wenig mit der Reihenfolge der befehle gespielt, da ich mir dachte das ich so eventuell das ansprechen ermöglichen kann. Dies hat leider nicht geklappt.
Vielen Dank und liebe Grüße
Felix

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsblatt aus Arbeitsmappe in andere Mappe kop.
14.06.2019 12:48:12
Rudi
Hallo,
die fehlt ein .xlsm.
Set Datenbank_Tankbestand = Workbooks("Datenbank_Tankbestand.xlsm")
Gruß
Rudi
und da fehlt auch die Endung:
14.06.2019 12:49:17
Rudi
Set Arbeitsmappe_Tank31_Testversion_1 = Workbooks("Arbeitsmappe_Tank 31_Testversion_1")
AW: Arbeitsblatt aus Arbeitsmappe in andere Mappe kop.
14.06.2019 12:51:35
Hajo_Zi
Hallo Felix,,
Du schreibst beim Ziel als erstes 2 Tabellen einmal den Internen namen und einmal den Namen der auf dem Register sthet. Das geht nicht. Du hast kein Workbok angegeben.
das zweite müsste auch Sheets(Datenbank_Tankbestand)
Die Variable Datenbank_Tankbestand ist in dewinenm Code den Du nicht gepoistet hast schon definierrt.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
Othographie mangelhaft. owT
14.06.2019 13:06:01
Rudi
AW: Othographie mangelhaft. owT
14.06.2019 13:18:06
Felix
Erstmal vielen Dank für die Antworten. die XLSM Endeungen waren nicht das Problem. Die scheinen in meinem Fall redundant zu sein. Es funktioniert jetzt mit und ohne die Endung.
Das problem war, dass ich nicht das Workbook (Arbeitsmappe_Tank31_Testversion_1.Worksheets("Tankbestand") angesprochen habe.
Jetzt funktioniert es jedoch mit dem folgenden Code.
Sub CopySheets()
Dim Arbeitsmappe_Tank31_Testversion_1 As Workbook
Dim Datenbank_Tankbestand As Workbook
Dim Tankbestand As Worksheet
Datum = ActiveSheet.Range("C4")
Set Arbeitsmappe_Tank31_Testversion_1 = Workbooks("Arbeitsmappe_Tank 31_Testversion_1")
Set Tankbestand = Worksheets("Tankbestand")
Workbooks.Open Filename:="C:\Users\felix.froehlich\Desktop\Datenbank_Tankbestand.xlsm",  _
UpdateLinks:=0
Set Datenbank_Tankbestand = Workbooks("Datenbank_Tankbestand")
Arbeitsmappe_Tank31_Testversion_1.Worksheets("Tankbestand").Copy After:= _
Datenbank_Tankbestand.Sheets(Datenbank_Tankbestand.Sheets.Count)
ActiveSheet.Name = Datum
End Sub
Ist mit Sicherheit nicht die sauberste Variante, aber ich beschäftige mich erst seit zwei Wochen mit VBA und bin derzeit recht zufrieden wenn ich einfach as gewünschte Ergebnis erreiche.
@Hajo, aus deinem Beitrag bin ich leider nicht so ganz schlau geworden.
Anzeige
Aus Hajos Beiträgen...
14.06.2019 23:48:20
Rudi
...muss man nicht unbedingt schlau werden.
Gruß
Rudi

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige