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“.

clip_image002

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.

clip_image003

Als nächstes fügen wir das Kombinationsfeld hinzu. Klicken Sie in der Toolbox auf die Option Kombinationsfeld.

clip_image005

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.

clip_image007

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.

clip_image009

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.

clip_image011

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.

clip_image013

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Die folgenden im Rahmen der DSGVO notwendigen Bedingungen müssen gelesen und akzeptiert werden:
Durch Abschicken des Formulars wird dein Name, E-Mail-Adresse und eingegebene Text in der Datenbank gespeichert. Für weitere Informationen wirf bitte einen Blick in die Datenschutzerklärung.