Ferienplan mit VBA
14.07.2014 11:13:16
Marc
In der Hoffnung, dass sich alle von den gestrigen Feierlichkeiten erholt haben, wende ich mich an euch mit einer VBA-Frage.
Und zwar habe ich einen Ferienplan für eine Abteilung erstellt. In diesem sind die Namen der Teammitlieder jeweils in der Spalte B eingetragen. Für jedes Quartal gibt es ein eigenes Tabellenblatt.
Nun habe ich zwei Userforms für die Eintragung von Abwesenheiten erstellt. Die eine für die ersten beiden Quartale und die andere für die letzten beide. Diese Userform sieht folgendermassen aus:
Die Mitarbeiter in der ComboBox für die Auswahl des Mitarbeiters habe ich mittels Namenmanager flexibel gestaltet. Dass heisst, wenn ein Mitarbeiter gelöscht wird, taucht dieser nicht mehr in der Combobox auf. Hingegen wenn ein neuer hinzugefügt wird, ist dieser auch in der Combobox ersichtlich. Dasselbe gilt für die ComboBox mit den Absenzgründen. Ich habe hierfür folgenden Code verwendet:
Private Sub UserForm_Initialize()
Dim rngAbsenzgründe As Range
Dim rngMitarbeiter As Range
'Werte für ComboBoxen von Excel beziehen
With Me
.cboEingabeAbsenzgrundJul.List = Range("Absenzgründe").Value
.cboEingabeMitarbeiterJul.List = Range("MitarbeiterJulAugSep").Value
.cboEingabeAbsenzgrundAug.List = Range("Absenzgründe").Value
.cboEingabeMitarbeiterAug.List = Range("MitarbeiterJulAugSep").Value
.cboEingabeAbsenzgrundSep.List = Range("Absenzgründe").Value
.cboEingabeMitarbeiterSep.List = Range("MitarbeiterJulAugSep").Value
.cboEingabeAbsenzgrundOkt.List = Range("Absenzgründe").Value
.cboEingabeMitarbeiterOkt.List = Range("MitarbeiterOktNovDez").Value
.cboEingabeAbsenzgrundNov.List = Range("Absenzgründe").Value
.cboEingabeMitarbeiterNov.List = Range("MitarbeiterOktNovDez").Value
.cboEingabeAbsenzgrundDez.List = Range("Absenzgründe").Value
.cboEingabeMitarbeiterDez.List = Range("MitarbeiterOktNovDez").Value
End With
End Sub
Dass korrekte Datum für die Abwesenheiten soll nun über das Auswählen der Checkboxen im Kalender wiedergegeben werden. Hierzu kann ich ja glaube ich die Ausgabe der Checkboxen mit den jeweiligen Zellen in welchen die Daten stehen verknüpfen. Also quasi wenn der 3. Juli ausgewählt wird, die Spalte in welcher der 3. Juli steht hinterlegen.
Leider schaffe ich es nun aber nicht, die Daten korrekt in den Ferienplänen wiederzugeben. Dass heisst, wenn ein Mitarbeiter ausgewählt wird in der Userform, schaffe ich es nicht, dass die korrekte Zeile angesprochen wird. Auch die Daten in den Spalten sind noch nicht verknüpft. Wie schaffe ich es, dass die Daten korrekt ausgegeben werden?
Zudem muss ja der Absenzgrund schlussendlich im Ferienplan eingetragen werden. Jedoch ist dieser zu lang und ich habe für jeden Grund einen Code definiert. Z.B. wenn Urlaub ausgewählt wird muss im Kalender der Code U wiedergegeben werden. Auch dies schaffe ich nicht.
Ich hoffe ihr könnt mir weiterhelfen. Sitze nun seit circa einer Woche an dieser Programmierung und drehe langsam aber sicher durch, weil ich nicht weiterkomme. Zudem besteht, dass Problem, dass ich das Programmieren generell nicht wirklich verstehe und von daher schon gar keine gescheiten Ansatz habe.
Hier ist noch der Link für die Beispieldatei:
https://www.herber.de/bbs/user/91497.xlsm
Ich möchte mich bereits im Voraus für eure Bemühungen bedanken.
LG Marc