ich habe ein Problem mit VBA und der Überprüfung von Zellen und deren Werten auf Gültigkeit.
Details:
Tabelle 1: enthält eine Liste mit Kunden und Projekten. Z.B.:
Kunde 1, Projekt 1
Kunde 2, Projekt 1
Kunde 3, Projekt 1
Kunde 2, Projekt 2
Kunde 1, Projekt 2
Kunde 1, Projekt 3
Tabelle 2: enthält Arbeitszeiten, die ich für einen Kunden und ein bestimmtes Projekt geleistet habe. Z.B.:
Kunde 1, Projekt 1: 10h
Kunde 1, Projekt 2: 3h
usw...
Bein Eintragen der Arbeitszeiten soll in der Spalte Kunde eine Gültigkeit (Liste mit Dropdown) geprüft werden. Nur Kunden, die in Tabelle 1 mit einem Projekt angelegt sind, dürfen Arbeitszeit Einträge erhalten.
Mit VBA lese ich die Kunden aus Tabelle 1 und schreibe sie in ein Array.
Soweit klappt das auch. Mit diesem Array soll nun eine Gültigkeitsprüfung erstellt werden, sodass nur Kunden, die auch angelegt sind, bei den Arbeitszeiten ausgewählt werden können.
Dann ergänze ich, mit folgendem Code, die Gültigkeitsprüfung:
With Sheets("Arbeitszeiterfassung").Range("F7:F1000").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(Kundenliste, ";")
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Kältemittel"
.InputMessage = ""
.ErrorMessage = "Fehler"
.ShowInput = True
.ShowError = True
End With
Dieser Code wird beim Speichern ausgeführt.
Mein Problem:
Die Werte tauchen in der Dropdown Box auf, das Makro läuft also. ABER:
Ich erhalte alle Werte in einer Zeile in der Dropdown Box, mit ";" getrennt. Die Gültigkeitsprüfung, bzw. die Auswahlbox sollte eigentlich einen Wert pro Zeile zeigen.
Sobald ich für eine betroffene Zelle die Gültigkeitsprüfung manuell nachprüfe, und das Fenster mit OK schließe, passt die Darstellung und ich kann einen Kunden auswählen.
Das Problem tritt dann erneut auf, wenn ich einen neuen Kunden angelgt habe und gespeichert habe...
Kennt jemand dieses Problem?
Vielen Dank für eure Hilfe,
Markus
P.S.: Warum VBA:
weil die Liste mit Kunden und Projekten dynamisch und unsortiert ist...