Makro von Office XP in Office 2007
Office
habe das folgende Makro in Excel 2007 eingebracht aber da funktioniert es nicht einwandfrei.
Es wird das vorhande Tabellenblatt nicht gelöscht und dann neu erstellt. In XP habe ich damit keine Probleme.
Frage."Was müßte ich ändern damit Excel 2007 auch damit fertig wird?"
Ich würde mich freuen wenn jemand sich den Code mal anschaut und mir sagen könnte, was für den Betrieb in Excel 2007 geändert werden muß.
Mfg
Odje
Private Sub CopySheet()
Dim Wb As Workbook, ws2 As Worksheet, r As Range, ws As Worksheet, Blattname As String
Dim sp As Long, x As Long, z As Long
Application.ScreenUpdating = False
Application.SendKeys "%{F9}"
If CDate(Range("C5").Value) Then 'evtl. Zelle ändern
Range("E1").Value = Format(Range("C5").Value, "MMMM") 'evtl. Zelle ändern
End If
If Sheets(Sheets.Count).Name = Format(Range("C5").Value, "MMMM") Then 'evtl. Zelle ä _
ndern
Application.DisplayAlerts = False
Sheets(Sheets.Count).Delete
Application.DisplayAlerts = True
End If
Rem Druckbereich markieren
Range("A2:E25").Select
Rem Kopie anlegen Zieladresse ist A1 -
Rem Zeilenhöhen und Spaltenbreiten werden übertragen
Set Wb = ActiveWorkbook
Set ws = ActiveSheet
Set r = Selection
Set ws2 = Wb.Worksheets.Add(After:=Wb.Worksheets(Wb.Worksheets.Count))
r.Copy ws2.Range("A1")
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
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
Rem Wert aus der ("Vorlage")("E1") = Blattname für die Kopie
Blattname = Wb.Worksheets("Vorlage").Range("E1").Value
ws2.Name = Blattname
Rem Vorlage wieder aktivieren, die Selektierung deaktivieren
Wb.Worksheets("Vorlage").Activate
Range("A1").Select
Application.ScreenUpdating = True
AUFRAEUMEN:
Set Wb = Nothing: Set ws = Nothing: Set ws2 = Nothing: Set r = Nothing
End Sub