Hallo Danni,
warum kopierst du die Formel nicht auf ganz normalem Weg? Einfach Zelle kopieren, Bereich markieren und Entertaste. Oder falls du den Inhalt nicht überschreiben willst, dann Inhalte einfügen: Gültigkeit.
Wenn du das denn unbedingt über VBA machen willst solltest du auch konsequent sein. Du deklarierst int_Zeilenzähler, verwendest aber int_Zeilenzaehler. Das sind zwei verschiedene Variablen.
Die Formel ist allerdings interessant: Der Makrorekorder zeichnet hier die deutsche Eingabe auf, vergisst aber, sie ins englische Format umzuwandeln, wodurch beim Ausführen ein Runtime-Error ausgelöst wird. Noch ein VBA-Bug! Natürlich brauchst du hier (wie fast immer) die Variante mit englischen Formelnamen und Komma als Trennzeichen.
Wenn ich dich richtig verstehe, könnte dein Code insgesamt in etwa so aussehen:
Sub GueltigkeitKopieren()
Dim int_Zeilenzähler As Integer
For int_Zeilenzähler = 9 To 20
With Range("E" & int_Zeilenzähler).Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=And(E" & int_Zeilenzähler & ">=500,E" & int_Zeilenzähler & "<=2359,Isblank(L" & int_Zeilenzähler & "))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Next
End Sub
Aber wie gesagt, auch ein normales Kopieren einer Gültigkeits-Zelle ist möglich und reicht im Alltag völlig aus. Die Zellbezüge werden automatisch angepasst.
Gruß Mr. K.
|