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

Alle Sheet mitkopieren VBA

Alle Sheet mitkopieren VBA
02.10.2020 13:00:34
Mike
Hallo Zusammen,
mir wurde bereits durch Franz viel geholfen. Leider klappt der Macro aber noch nicht ganz. Im Moment wird nur das Sheet Infrastructure mit kopiert. Es sollen aber alle Sheets mit kopiert werden und die Verbindungen dabei erhalten bleiben. Eigentlich soll jedes neu abgespeicherte Dokument die Sheets der Ursprungsdatei beinhalten nur eben die Werte sollen ausgetauscht werde.
Kann mir hier jemand bitte helfen, ich bin echt am verzweifeln...:(
LG
MIKE
Anbei noch die Datei: https://www.herber.de/bbs/user/140590.xlsm
Der Code:
Sub Test()
Dim Qw As Worksheet 'Quelle
Dim Zw As Worksheet 'Ziel
Dim Nw As Workbook 'neue
Dim Z
Dim strOrdnerZiel, strDatum As String
strDatum = InputBox("Datum für zu erstellende Dateien", "Vorlagen erstellen", _
Format(Date, "YYYYMMDD"))
If strDatum = "" Then Exit Sub
strOrdnerZiel = "C:\Users\xxx\Desktop\Bottomup Templates\" & strDatum & _
"_Market Estimations_RegX_"
Set Qw = ThisWorkbook.Worksheets("Input data")
Set Zw = ThisWorkbook.Worksheets("Infrastructure", "Superstructure")
For Each Z In Qw.Range("A2", Qw.Range("A1").End(xlDown)).Cells
Zw.Range("B3") = Z.Offset(0, 3).Value '[Sales Region], spalte 4
Zw.Range("B4") = Z.Offset(0, 2).Value '[Region], Spalte 3
Zw.Range("B5") = Z.Offset(0, 1).Value '[Country], Spalte 2
Zw.Range("C5") = Z.Value '[Country Code], Spalte 1
Zw.Copy
Set Nw = ActiveWorkbook
Nw.SaveAs _
Filename:=strOrdnerZiel & Z.Offset(0, 1).Value & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

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

Betreff
Datum
Anwender
Anzeige
der code ist unvollständig owt
02.10.2020 13:20:36
ralf_b
AW: der code ist unvollständig owt
02.10.2020 13:24:07
Mike
Hi Ralf,
sorry ja :/
Sub Test()
Dim Qw As Worksheet 'Quelle
Dim Zw As Worksheet 'Ziel
Dim Nw As Workbook 'neue
Dim Z
Dim strOrdnerZiel, strDatum As String
strDatum = InputBox("Datum für zu erstellende Dateien", "Vorlagen erstellen", _
Format(Date, "YYYYMMDD"))
If strDatum = "" Then Exit Sub
strOrdnerZiel = "C:\Users\xxx\Desktop\Bottomup Templates\" & strDatum & _
"_Market Estimations_RegX_"
Set Qw = ThisWorkbook.Worksheets("Input data")
Set Zw = ThisWorkbook.Worksheets("Infrastructure", "Superstructure")
For Each Z In Qw.Range("A2", Qw.Range("A1").End(xlDown)).Cells
Zw.Range("B3") = Z.Offset(0, 3).Value '[Sales Region], spalte 4
Zw.Range("B4") = Z.Offset(0, 2).Value '[Region], Spalte 3
Zw.Range("B5") = Z.Offset(0, 1).Value '[Country], Spalte 2
Zw.Range("C5") = Z.Value '[Country Code], Spalte 1
Zw.Copy
Set Nw = ActiveWorkbook
Nw.SaveAs _
Filename:=strOrdnerZiel & Z.Offset(0, 1).Value & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Nw.Close savechanges:=False
Next
End Sub

Anzeige
AW: der code ist unvollständig owt
02.10.2020 15:09:45
Yal
Hallo Mike,
ich heiße Franz. Na warum auch nicht.
Anstatt
        Zw.Copy
Set Nw = ActiveWorkbook
Nw.SaveAs _
Filename:=strOrdnerZiel & Z.Offset(0, 1).Value & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Nw.Close savechanges:=False
folgendes
    Zw.Parent.SaveCopyAs _
Filename:="C:\temp\Mappe2.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
Wichtig ist, dass Du dich mit dem Coding auseinander setzt. Was bedeutet das, was da steht? Was bewirkt es? Auf was wirkt diese Funktion? Was passiert, wenn ich anstatt eine Tabelle ein Workbook übergebe?
Das ist wie eine Fremdsprache lernen. Schwierig am Anfang, aber ohne eiserne Willen geht nichts.
Viel Erfolg beim Gut werden
Yal
Anzeige
AW: der code ist unvollständig owt
02.10.2020 15:20:05
Mike
Hallo Franz,
ja ich weiß das will ich auch..
Kannst du mir deine Änderungen erklären?....
AW: der code ist unvollständig owt
02.10.2020 15:23:36
Mike
Ich habe die logik dahinter verstanden wie die werte in das sheet eingesetzt werden, aber ich brauche immer alle sheets in der neuen datei und das will einfach nicht klappen...
AW: der code ist unvollständig owt
02.10.2020 16:48:02
Mike
Hallo Ralf,
vielen dank schonmal!
Ich bekomme hier einen laufzeitfehler:
newName = strOrdnerZiel & inputdata(i, 2).xlsx ' neuer name der Datei definieren
Muss ich hier etwas anpassen?
Anzeige
AW: der code ist unvollständig owt
02.10.2020 17:22:32
ralf_b
oh mensch tatsächlich inputdata(i, 2) & ".xlsx"
AW: der code ist unvollständig owt
02.10.2020 16:44:08
Yal
Gern.
im ersten Fall
nehmen eine Variable Zw, die wir mit der Adresse einer Tabelle (Worksheet) befüllen.
Diese Worksheet kopieren wir ("Zw.copy"), aber die Kopie hängt "in der Luft", also assignieren wir diese Mithilfe von ActiveWorkbook (weil das Kopieren den Fokus auf die Kopie üebrgibt. Das original ist weiterhin offen aber nicht "Aktiv") zu der Variable Nw.
(hier sehe ich, dass es verwirrend ist, weil bei Zw und Qw, w Worksheet bedeutet, aber bei Nw Workbook. shame on me).
Wir speichern anschliessend diese Worksbook "Nw" (=Arbeitsmappe, = Datei) und schliessen es. Das Original ist weiterhin offen und bekommt wieder den Fokus ("Aktiv").
Im zweiten Fall
da wir alle Worksheets übernehmen wollen, speichern wir direkt den gesamten Workbook als Copy (der "Parent" vom Worksheet, weil im Excel Objekt-Modell ein Worksheet immer ein Unterteil eines Workbooks ist).
Nun haben wir weiterhin nur ein Workbook offen, und der hat den neu vergebene Name.
Diese Coding ist aber meinerseits ungestestet und besteht auch zum grossen Teil von Anweisungen, die durch den Recorder entstanden sind (warum selber tippen?)
Ich hoffe, es hilft. Das Problem bei VBA-Lernen ist nicht das VBA selbst, sondern die Logik des Programmieren. Aber keine Angst, es kommt auch mit. Auch das Verständnis der Objekt-Modell von Excel kommt nach und nach.
Schönes WE
Yal
Anzeige
AW: cp: VBA forum
02.10.2020 17:44:29
Mike
Sorry Ralf ich dachte es antwortet mir keiner mehr...
Ich bin einfach echt verzweifelt, weil ich das bis heute Abend hinbekommen muss.
Tut mir leid !!!!
AW: cp: VBA forum
02.10.2020 18:33:20
Mike
könntest du mir pls helfen ralf ?
dachte es läuft jetzt? owt
02.10.2020 18:44:45
ralf_b
AW: dachte es läuft jetzt? owt
02.10.2020 19:17:39
Mike
Wollte mich eigentlich nur entschuldigen, war nicht meine Absicht...bin einfach gestresst und hab panik geschoben...
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige