- #1
N
nok106
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 10.09.2005
- Beiträge
- 108
- Reaktionspunkte
- 0
- Ort
- Brunsbüttel
Hallo Matjes,
ich benötige wieder einmal deine Hilfe.
Folgendes:
Jetzt kopiert das untenstehende Makro ein neues Tabellenblatt mit lfd. Tabellennummer.
Ist es möglich den Code so zuändern, dass der Wert von Tabelle1 Zelle (C17), als Blattname erscheint ?
Hat du eine Idee ob das geht und wenn ja - Wie ?
Einstweilen herzlichen Dank für dein bemühen.
MfG Odje
ich benötige wieder einmal deine Hilfe.
Folgendes:
Jetzt kopiert das untenstehende Makro ein neues Tabellenblatt mit lfd. Tabellennummer.
Ist es möglich den Code so zuändern, dass der Wert von Tabelle1 Zelle (C17), als Blattname erscheint ?
Hat du eine Idee ob das geht und wenn ja - Wie ?
Einstweilen herzlichen Dank für dein bemühen.
MfG Odje
Code:
Sub AktivesBlatt_kopieren()
Rem Der selektierte Bereich eines ArbeitsBlattes wird kopiert
Rem Zieladresse ist A1
Rem Das Seitenlayout wird übernommen
Rem Zeilenhöhe und Spaltenbreite werden übernommen
Dim wb As Workbook, ws As Worksheet, ws2 As Worksheet, r As Range
Dim x As Long, z As Long, sp As Long
Application.ScreenUpdating = False
Rem Druckbereich auslesen.
Dim Zeilen As Double
Dim Spalten As Integer
For i = 1 To 65536
s = Cells(i, 256).End(xlToLeft).Column
If Spalten < s Then
Spalten = s
End If
Next i
For i = 1 To 256
z = Cells(65536, i).End(xlUp).Row
If Zeilen < z Then
Zeilen = z
End If
Next i
Range(Cells(1, 1), Cells(Zeilen, Spalten)).Select
Druckbereich = Selection.Address
Set wb = ActiveWorkbook
Set ws = ActiveSheet
Set r = Selection
Rem neues Blatt anlegen
Set ws2 = wb.Worksheets.Add(After:=ws)
Rem Seitenlayout übernehmen
With ws.PageSetup
ws2.PageSetup.BottomMargin = .BottomMargin
ws2.PageSetup.FooterMargin = .FooterMargin
ws2.PageSetup.HeaderMargin = .HeaderMargin
ws2.PageSetup.LeftMargin = .LeftMargin
ws2.PageSetup.Orientation = .Orientation
ws2.PageSetup.PaperSize = .PaperSize
ws2.PageSetup.RightMargin = .RightMargin
ws2.PageSetup.TopMargin = .TopMargin
End With
Rem selektierten Bereich auf neues Blatt A1 kopieren
r.Copy ws2.Range(A1)
Rem Zeilehöhen übertragen
z = 0
For x = r.Row To r.Row + r.Rows.Count - 1
z = z + 1
ws2.Rows(z).RowHeight = ws.Rows(x).RowHeight
Next
->Spaltenbreiten übertragen
sp = 0
For x = r.Column To r.Column + r.Columns.Count - 1
sp = sp + 1
ws2.Columns(sp).ColumnWidth = ws.Columns(x).ColumnWidth
Next
AUFRAEUMEN:
Set wb = Nothing: Set ws = Nothing: Set ws2 = Nothing: Set r = Nothing
Application.ScreenUpdating = True
End Sub