Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Mit VBA Arbeitsblätter kopieren

Betrifft: Mit VBA Arbeitsblätter kopieren von: Mike
Geschrieben am: 03.10.2020 20:06:43

Hallo Zusammen,


eine Frage ich habe einen Code der Arbeitsblätter kopiert. Das Problem ist, dass dabei alle bedingten Formatierungen und Dropdowns flöten gehen.


Würde sich diese auch mit kopieren lassen?


Anbei der Code:

Sub Create_Bottom_Up_Templates()
    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\Nils Blasche\Desktop\Bottomup Templates\New Bottom Up Templates\"  _
 _
& strDatum _
         & "_Market Estimations_RegX_"

    Set Qw = ThisWorkbook.Worksheets("Input data")
    For Each Z In Qw.Range("A2", Qw.Range("A1").End(xlDown)).Cells
        ThisWorkbook.Sheets(Array("Infrastructure", "Superstructure", "Summary", _
            "Manipulation Faktor", "Data_1", "Data_2", "Config")).Copy
        Set Nw = ActiveWorkbook
        Set Zw = Nw.Worksheets("Infrastructure")
        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
        Select Case Z.Offset(0, 1).Value
        Case "Germany"
          Nw.SaveAs _
              Filename:=strOrdnerZiel & Z.Offset(0, 1).Value & "_" & Z.Offset(0, 2).Value _
              & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        Case Else
          Nw.SaveAs _
              Filename:=strOrdnerZiel & Z.Offset(0, 1).Value & ".xlsx", _
              FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
        End Select
        Nw.Close savechanges:=False
    
    Next
End Sub

VG

MIKE

Betrifft: warum ein neuer Thread? ...
von: ralf_b
Geschrieben am: 03.10.2020 21:23:46

... und die Panik ist nun sicher auch etwas weniger. Nils, was passt dir denn an meinem Lösungsvorschlag von gestern nicht? Wie du siehst hast du mit deiner Kopiererei das nächste Problem.

Betrifft: AW: warum ein neuer Thread? ...
von: Mike
Geschrieben am: 03.10.2020 21:34:57

Ja... ich hatte bei deinem Code immer einen Fehler bekommen, an dieser stelle:

newName = strOrdnerZiel & inputdata(i, 2).xlsx ' neuer name der Datei definieren

Woran liegt das?

Betrifft: AW: warum ein neuer Thread? ...
von: ralf_b
Geschrieben am: 03.10.2020 21:43:54

1. Welcher Fehler? Ich bin kein Hellseher. Aber wenn du das Makro ein zweites Mal laufen läßt und die Datei bereits existiert, kanns Probleme geben. Bedenke das diese Makros nicht so programiert sind um auf alle möglichen Problemchen eine Antwort ,spricht Fehlerbehandlung, bereitstellen.

Betrifft: AW: warum ein neuer Thread? ...
von: Mike
Geschrieben am: 03.10.2020 21:51:57

Ok dann verstehe ich vielleicht nicht was der teil macht...
Es erscheint Laufzeitfehler 424, Objekt erforderlich

Betrifft: anpassung code ...
von: ralf_b
Geschrieben am: 03.10.2020 22:05:55

newName = strOrdnerZiel & inputdata(i, 2) & ".xlsx"

Betrifft: AW: anpassung code ...
von: Mike
Geschrieben am: 03.10.2020 22:13:52

hmm neues problem, nun wird diese Zeile gelb markiert und alleine input data ist in der neuen datei

.Worksheets(ZZ(0)).Range("B3") = inputdata(i, 4) '[Sales Region], spalte 4

Betrifft: AW: anpassung code ...
von: ralf_b
Geschrieben am: 03.10.2020 22:25:31

ich habe gerade deine vorlagen bei mir generiert. Siehe bild. die werte von inputdata sind übertragen worden. Ich bin dann raus, da ich offensichtlich nicht die richtigen Informationen vorliegen habe. Schade wenn man für die Mülltonne arbeitet.



Betrifft: und übrigens
von: ralf_b
Geschrieben am: 03.10.2020 22:11:06

hatte ich dir das gestern schon geschrieben

Betrifft: AW: der code ist unvollständig owt
von: ralf_b
Geschrieben am: 02.10.2020 17:22:32

oh mensch tatsächlich inputdata(i, 2) & ".xlsx"

Betrifft: AW: und übrigens
von: Mike
Geschrieben am: 03.10.2020 22:15:09

das hatte ich übersehen

Betrifft: AW: und übrigens
von: Mike
Geschrieben am: 03.10.2020 22:48:47

Um genau zu sein Laufzeitfehler 9

Betrifft: AW: und übrigens
von: Mike
Geschrieben am: 04.10.2020 09:56:41

Hallo Ralf,
wie gesagt ich bin kein VBA Kenner und tue mein bestes. Ich mache auch sicher Fehler,

dies ist dein Code welchen ich angepasst habe, was mache ich denn falsch ?

ich möchte auch nicht, dass du für die Mülltonne arbeitest

Betrifft: AW: und übrigens
von: ralf_b
Geschrieben am: 04.10.2020 12:20:51

dann schick mir mal deine Datei original ,bzw mit deinen original Pfadangaben.
Solltest du meine Variante mit der separaten datei nutzen , dann auch deine Vorlagendatei. Sollte ich den Fehler nicht reproduzieren können, kann ich dir nicht weiterhelfen.

Betrifft: AW: und übrigens
von: Mike
Geschrieben am: 04.10.2020 12:31:54

Hi Ralf,

Soll ich es dir per Mail schicken ?

Betrifft: AW: und übrigens
von: ralf_b
Geschrieben am: 04.10.2020 12:47:22

email findest du in meinem profil