AW: Formatierung schützen per VBA ?
27.10.2008 23:23:23
Daniel
Hi
drag'n'Drop kannst du unter EXTRAS-OPTIONEN-BEARBEITEN deaktivieren.
im Prinzip hätte ich da 2 Ideen
die erste wäre, du Speicherst die Formate in einem 2. Tabellenblatt und kopierst diese von da bei bedarf in das erste:
Sheets("Formate").Cells.Copy
Sheets("Tabelle1").Cells(1,1).PasteSpecial xlPasteformats
den Code kannst du halt auf Wunsch ausführen oder im CHANGE-EVENT von Tabelle1 hinterlegen.
dann würde er jedesmal ausgeführt sobald in Tabelle 1 was geändert wird.
das zweite Makro kommt ohne zusätzliches tabellenblatt aus und funktioniert so:
- die Eingegebenen Werte werden in einem Array zwischengespreichert
- die Eingabe des Users wird Rückgängig gemacht und so die Formate wieder hergestellt
- die gespeicherten Werte werden in die Tabelle geschrieben (nur die werte, keine Formate)
allerdings hat dieses Makro den Nachteil, daß es nur bei CopyPaste funktioniert, nicht bei Drag'n'Drop, dh. das müsstest du wie oben beschrieben deaktivieren.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim arr
Set rng = Target.Cells(1, 1)
arr = Target.FormulaLocal
Application.EnableEvents = False
Application.Undo
Select Case Target.Cells.Count
Case 1
rng.Value = arr
Case Else
rng.Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
End Select
Application.EnableEvents = True
End Sub
Gurß, Daniel