in meiner Datei gibt es viele Eingabezellen (mit verschiedenen Datengültigkeiten), welche ebenfalls Formeln enthalten und unter bestimmten Bedingungen bereits mit Werten vorbestückt werden. Es kann aber auch sein, dass der USER die Werte manuell eingibt und damit natürlich die Formel überschreibt.
Per Recerder habe ich einen Teil des Makros aufgezeichnet, welches mir
1. die Datengültigkeitsprüfung ausschaltet
2. die Formel wieder in die Zelle schreibt und
3. die Datengültigkeitsprüfung wieder einschaltet
... also den Ursprungszustand vor der Dateneingabe wiederherstellt.
Wer kann mir bitte jemand diese Formeln so kürzen, dass sie nur noch die erforderlichen Befehle enthält ?
Vielen Dank bereits im voraus.
Gruß, Celine.
Sub TEST()
'1) Daten - Gültigkeitsprüfung ausschalten:
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="0", Formula2:="10"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Eingabefehler !"
.InputMessage = ""
.ErrorMessage = "Gültige Werte = 0 bis 10"
.ShowInput = False
.ShowError = False 'Fehlerprüfung ausschalten
End With
'2) Formel wieder in Zelle eingeben
Range("C52").FormulaR1C1 = "=IF(SUM(R37C6:R37C9)=0,"""",IF(AND(Arbeitszeit_am_DATUM=Datum_MO,COUNTBLANK(R37C6:R37C9)=0),Arbeitszeit_STUNDEN,""""))"
'3) Daten - Gültigkeitsprüfung wieder einschalten:
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="0", Formula2:="10"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Eingabefehler !"
.InputMessage = ""
.ErrorMessage = "Gültige Werte = 0 bis 10"
.ShowInput = False
.ShowError = True 'Fehlerprüfung wieder einschalten
End With
End Sub