Urlaubszeiten in Gantt-Diagramm anzeigen – Teil 2

Nachdem wir nun im ersten Teil meiner Blog-Reihe die Entwicklertools innerhalb von Project aktiviert haben, können wir nun den nächsten Schritt gehen. Grundsätzlich gilt dass Ressourcen innerhalb der Ressourcentabelle gepflegt werden. Aus diesem Grund möchte ich gerne eine Maske (UserForm) erstellen, inder ich dann die entsprechenden Ressourcen aus meiner Ressourcentabelle zur Auswahl erhalte. Hierzu benötigen wir zum einen eine Maske, in der ein Kombinationsfeld hinterlegt wird. Als nächstes wird dann der VB-Code hinterlegt, der die eingetragenen Ressourcen automatisch einließt und dann innerhalb des Kombinationsfeld einträgt. Legen wir als erstes die Maske an.
Öffnen Sie hierzu den Visual-Basic Editor. Klicken Sie auf die Registerkarte „Entwicklertools“ und klicken Sie dort auf die Option „Virtual Basic Editor. Wählen Sie mit der Maus den Knotenpunkt „VBAProject(Project1)“ und klicken Sie auf die rechte Maustaste. Wählen Sie im Kontextmenü die Option „Einfügen “ und wählen dann die Option „UserForm“.
Als nächstes ändern wir den Namen der UserForm und die Bezeichnung. Der Namen wird Ihnen in der linken oberen Ecke des Fensters angezeigt. Gehen Sie hierzu in die Eigenschaften auf die Option „Name“ und ändern Sie die Bezeichnung in „UserFormUrlaub“. Gegebn Sie ebenfalls in dem Feld „Caption“ den Namen „Urlaubstool“ ein.
Als nächstes fügen wir das Kombinationsfeld hinzu. Klicken Sie in der Toolbox auf die Option Kombinationsfeld.
Gehen Sie dann mit der Maus über die UserForm und Zeichen Sie das Kombinationsfeld ein. Gehen Sie dann mit der Maus über die entsprechenden Kanten und ändern Sie die Größe wie in Grafik dargestellt. Bitte achten Sie, dass Sie rechts neben dem Kombinationsfeld genügend Platz lassen, damit wir hier zu einem späten Zeitpunkt noch zwei Button anlegen können.
Nun können wir den Code hinterlegen um die Ressourcen auf der Ressourcentabelle einzulesen. Dieser wird nicht wie erwartet innerhalb des Kombinationsfelds hinterlegt, sondern in dem UserForm Bereich. Führen Sie auf das UserForm einen Doppelklick aus. Nun können wir den Code für die Maske hinzufügen. Als erstes nndern wir das Verhalten der UserForm von „Click“ auf „Initialize“. Klicken Sie hierzu in der rechten oberen Ecke auf das Dropdown-Feld und wählen Sie dort die Option „Initialize“ aus. Nachdem die Option ausgewählt wurde, wird ein neuer Sub-Bereich hinzugefügt. Den oben stehenden Bereich Private Sub „UserFrom_Click()“ und bis zum „End Sub“ können Sie entfernen.
Kopieren Sie nun den dargestellten Code zwischen Private Sub Initialize() und End Sub.
Dim i, a As Integer
Dim Arr(0 To 10) As String
i = 0
For Each ResName In ActiveProject.Resources
i = i + 1
Arr(i) = ResName.Name
Next
ComboBox1.Value = Arr(1)
ComboBox1.List = Arr
Ihre Ansicht müsste nun wie folgt aussehen.
Test Sie ob wir das gewünschte Ergebnis erreicht haben. Klicken Sie auf den kleinen Grünen „Play-Button“ in der Menüleiste. Dadurch wird das Programm ausgeführt. Wie Sie sehen, wird das Kombinationsfeld mit der ersten Ressource aus unsere Ressourcentabelle gefüllt und alle weiteren Ressource können ausgewählt werden.
Hinweis: Zurzeit ist es so, dass maximal 10 Ressourcen ausgewählt werden. Für meine Testdatei reicht das. Sollten Sie mehrere Ressourcen hinterlegt haben, so ändern Sie die 10 innerhalb des Codes die „Dim Arr(0 To 10) As String“ in die von Ihnen gewünschte Anzahl Bsp.: 20.
In unserem nächsten Teil werden wir nun den Code für die Erstellung der Auswertung des Urlaubs und die Formatierung des Gantt-Charts vornehmen.