Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zulassen: Liste

Forumthread: Zulassen: Liste

Zulassen: Liste
08.09.2006 21:00:47
Pia
Hey und Guten Abend!
Ich hatte hier aus dem Forum nachfolgenden Code bekommen. Ziel war es, automatisch eine Gültigkeit einzurichten mit einer Liste welche alle Jahre ab 2006 bis laufendes + 1 enthält.
Wenn ich das jetzt test, verstehe ich es nicht. Der Code wird beim Öffnen der Arbeitsmappe ausgeführt. Ergebnis: 2006;2007
Wenn ich den Code aber nach dem Öffnen erneut ausführe, klappt es! Was ist falsch?
Danke Euch allen!

Sub jahr_bestimmen()
Dim strValidate As String
For i = 2006 To Year(Date) + 1
strValidate = strValidate & CStr(i) & ";"
Next
Application.EnableEvents = False
Sheets("Jahresplaner").Unprotect
With Sheets("Jahresplaner").Range("G2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Left(strValidate, Len(strValidate) - 1)
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "falscher Wert"
.InputMessage = ""
.ErrorMessage = "Es können nur die vorgegebenen Jahre ausgewählt werden!"
.ShowInput = True
.ShowError = True
End With
Sheets("Jahresplaner").Range("G2") = Year(Date)
Sheets("Jahresplaner").Protect
Application.EnableEvents = True
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Gültigkeit reanimieren
08.09.2006 22:29:23
{Boris}
Hi Pia,
die Gültigkeit und auch die bedingte Formatierung sind da ganz eigen. Man muss sie nochmals "reanimieren". Das kann zum Beispiel mit der (ungeliebten) SendKeys-Anweisung erfolgen (geht auch mit FindControl(...).Execute - aber ich find die passende ID grad nicht). Ich geh davon aus, dass das Blatt "Jahresplaner" gerade aktiv ist.
Option Explicit

Sub jahr_bestimmen()
Dim strValidate As String, i As Long
For i = 2006 To Year(Date) + 1
strValidate = strValidate & CStr(i) & ";"
Next
Application.EnableEvents = False
Sheets("Jahresplaner").Unprotect
With Sheets("Jahresplaner").Range("G2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Left(strValidate, Len(strValidate) - 1)
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "falscher Wert"
.InputMessage = ""
.ErrorMessage = "Es können nur die vorgegebenen Jahre ausgewählt werden!"
.ShowInput = True
.ShowError = True
End With
Sheets("Jahresplaner").Range("G2") = Year(Date)
Range("G2").Select
'Hier wird die Zelle reanimiert
SendKeys ("%ngg")
SendKeys "{ENTER}"
Sheets("Jahresplaner").Protect
Application.EnableEvents = True
End Sub

Grüße Boris
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige