Microsoft Excel

Herbers Excel/VBA-Archiv

Übertrag v. Worksheet1 auf variable Anzahl v. Wks


Betrifft: Übertrag v. Worksheet1 auf variable Anzahl v. Wks von: Max
Geschrieben am: 01.02.2018 17:35:34

Liebe Alle,

leider komme ich nicht weiter und hoffe, Ihr könnt mir helfen.
Ich möchte gerne aus meinem Worksheet mit dem Namen "Start" ein Formular in alle anderen vorhandenen Worksheets kopieren. Die Anzahl der Worksheets ist dabei variabel. Zudem muss das verborgene Worksheet mit dem Namen "@@XLCUBEDDEFS@@" vernachlässigt (nicht gelöscht) werden.
Auch möchte ich das Printarea am Ende für alle Formulare in den Worksheets festlegen.
Mein bisheriger Ansatz:

Sub kopieren()

Dim wks As Worksheet, wSheets() As String, i&
For Each wks In ThisWorkbook.Worksheets
If Not wks.Name = "@@XLCUBEDDEFS@@" Or wks.Name = "Start" Then    

'Aus dem Worksheet Start soll eine Tabelle in alle Worksheets kopiert werden

ReDim Preserve wSheets(i)
    wSheets(i) = wks.Name
      i = i + 1
      
Worksheets("Start").Range("A:P").Copy         'Übetrag alles inkl. Reihenbreite
    Worksheets(wSheets).Select
Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    
    Worksheets("Start").Rows("1:56").Copy       'Reihenhöhe wird übernommen
    Worksheets(wSheets).Select
Rows("1:56").PasteSpecial Paste:=xlPasteFormats

Application.CutCopyMode = False
End If
Next
For Each wks In Worksheets                      'Printarea festlegen
    With wks
        .PageSetup.PrintArea = "$A$1:$P$56"
    End With
Next
End Sub
Leider ist da wohl der Wurm drinnen. Kann wer helfen?

Vielen Dank und Grüße
Max

  

Betrifft: AW: Übertrag v. Worksheet1 auf variable Anzahl v. Wks von: ChrisL
Geschrieben am: 01.02.2018 18:37:24

Hi Max

Ungetestet...

Worksheets(wSheets).Select
wäre
Worksheets(wSheets(i)).Select
aber der Umweg über Array scheint mir sinnlos
wks.Select
---------

Und wenn wir schon dabei sind, die Select gleich weg...
wks.Select
Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
wird zu...
wks.Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
---------

Wenn du...
wks.PageSetup.PrintArea = "$A$1:$P$56"
nach oben nimmst, brauchst du die zweite Schleife nicht.

cu
Chris


  

Betrifft: AW: Übertrag v. Worksheet1 auf variable Anzahl Wks von: Max
Geschrieben am: 02.02.2018 17:32:51

Vielen Dank Chris!

sowohl mit wsheet(i) kommt ein Fehler als auch mit wks.select :-(


VG
Max


  

Betrifft: AW: Übertrag v. Worksheet1 auf variable Anzahl Wks von: ChrisL
Geschrieben am: 03.02.2018 07:25:26

Die Fehlermeldung muss ich erraten?

Für Select (was es nicht braucht) muss das Blatt selektrierbar (eingeblendet) sein.


Beiträge aus dem Excel-Forum zum Thema "Übertrag v. Worksheet1 auf variable Anzahl v. Wks"