VBA - Worksheets.Paste funktion

Bild

Betrifft: VBA - Worksheets.Paste funktion
von: Jochen Buck
Geschrieben am: 12.06.2015 11:54:55

Hallo liebes Herber-Forum,
ich habe folgendes Problem, an dem ich verzweifle.
ich habe in Excel ein Registerblatt "Nachweis", dass mit Funktionen, Makros und bestimmten Zellen, Zeilen und Spaltenformatierungen versehen ist.
Aus diesem Registerblatt "Nachweis" heraus werden per Markobutton weitere Registerblätter mit vorgegebenen Registernamen erstellt, die Namen holt sich das Makro aus dem Registerblatt "Personal".
Während die Schleife die Registerblätter generiert und umbenennt, soll auch der Inhalt mit allen Formatierungen des Registerblattes "Nachweis" in die neuen Registerblätter kopiert werden und das ist der Punkt, den ich einfach nicht hinbekomme.
Hier kommt der VBA-Code:

Sub Tabellenblätter_generieren()
Dim Zelle, Bereich As Range
Dim i As Integer
Dim nWS As Worksheet
Dim Bool As Boolean
Sheets("Personal").Select
Set Bereich = Range("F3:F" & Range("F65536").End(xlUp).Row)
 
For Each Zelle In Bereich
    For i = 2 To Worksheets.Count
        If Worksheets(i).Name = Zelle.Value Then
            Bool = True
            Exit For
        Else
            Bool = False
        End If
    Next i
    
    If Bool = False Then
        Set nWS = Worksheets.Add(after:=Worksheets(Worksheets.Count))
        nWS.Name = Zelle.Value

'---- hier der rudimentäre Versuch den Inhalt mit allen 
'     Formatierungen zu kopieren. Auch Pastespecial
        
        Worksheets("Nachweis").UsedRange.Copy
        Worksheets(i).Paste  
' hiermit werden leider die Zeilen und Spaltenformate nicht kopiert
' auch  Worksheets(i).PasteSpecial Paste:=xlPasteValues oder 
'                  ...PasteSpecial Paste:=xlPasteFormats führen
 nur zu einem Fehler 400
'-----
    End If
Next Zelle
    Sheets("Nachweis").Select
End Sub
Sicherlich ein kleiner Schritt für einen von Euch, ein zu großer für mich. Ich würde mich freuen, wenn mir einer auf die Sprünge helfen könnte.
Habe mich auch schon mit dem Makrorecorder dran gemacht um mal zu schauen, wie der die Lösung aufzeichnet.
Sub Inhalte_generieren()
'
' Inhalte_generieren Makro
'
'
    Sheets("Nachweis").Select
    Cells.Select
    Selection.Copy
    Sheets("Delf").Select
    Range("A1").Select
    ActiveSheet.Paste
End Sub
bin aber nicht in der Lage den Code in meinen o.g. Code zu übernehmen.
Vielen Dank im Voraus
Jochen

Bild

Betrifft: AW: VBA - Worksheets.Paste funktion
von: Rudi Maintaire
Geschrieben am: 12.06.2015 12:05:53
Hallo,
kpier doch einfach das sheet Nachweis.

Sub Tabellenblätter_generieren()
Dim Zelle, Bereich As Range
Dim i As Integer
Dim nWS As Worksheet
Dim Bool As Boolean
With Sheets("Personal")
Set Bereich = .Range("F3:F" & .Range("F65536").End(xlUp).Row)
End With
For Each Zelle In Bereich
    For i = 2 To Worksheets.Count
        If Worksheets(i).Name = Zelle.Value Then
            Bool = True
            Exit For
        Else
            Bool = False
        End If
    Next i
    
    If Bool = False Then
        Worksheets("nachweis").Copy after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = Zelle.Value
    End If
Next Zelle
    Sheets("Nachweis").Select
End Sub
Gruß
Rudi

Bild

Betrifft: AW: VBA - Worksheets.Paste funktion
von: Jochen Buck
Geschrieben am: 12.06.2015 12:49:26
Hallo Rudi,
super schnell, super gut!! Auf die Idee bin ich einfach nicht gekommen.
Danke für die Unterstützung.
Gruß
Jochen

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA - Worksheets.Paste funktion"