AW: Nur Zellformat schützen
03.08.2005 15:18:45
Reinhard
Hi Alex,
zeichne dir ein makro auf in dem du für eine Zelle alle formatierungen einstellst wie du sie möchtest. Du erhälst dann so was wie makro1.
Dieses bastelst du so um dass es analog zum Worksheet_change Makro aussieht
Dann rechtsklick unten auf den Tabellennamen, Code anzeigen, Code reinkopieren, Editor schliessen.
Wenn für einzelen Zellen unterschiedliche Formate gelten sollen , dann lege eine Hilfstabelle an die in etwa so aussieht:
zelle .HorizontalAlignment .Borders(xlDiagonalUp).LineStyle .Borders(xlEdgeLeft).LineStyle
a1 xlcontinus xlnone usw.
h5 xlthick
Beachte die Zusammenfassung bei .Borders(xlEdgeLeft).LineStyle.
Die Spaltenüberschriften sind unwichtig, kannste auch abkürzen.
Diese Datei lädst du dann hier hoch. Daten braucht diese datei keine zu enthalten, nur die o.g Parameter pro zelle.
Gruß
Reinhard
Sub Makro1()
Selection.NumberFormat = "0.0000"
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
.NumberFormat = "0.0000"
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.MergeCells = False
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
End With
End Sub