trotz meiner dürftigen VBA-Kenntnisse habe ich damit begonnen, eine Art Mitarbeiterverwaltung zu erstellen.
Bei einem Excel-Programmstart wird mit einer Monatsübersicht für Januar gestartet, der Benutzer kann über zwei cmdButtons in den Monaten vor und zurückblättern, wobei für jeden Monat ein neues Tabellenblatt samt Monatskalender erstellt wird.
In den jeweiligen Monaten soll er die Möglichkeit haben, über einen Klick mit der rechten Maustaste auf die Zellen C4 bis AG4 zu erfahren, wieviel Mitarbeiter an diesem Tag eingeplant sind.
Mit einem Rechtsklick auf den jeweiligen Tag (Zellen C6 bis AG 48) hat er die Möglichkeit, dem Mitarbeiter z.B. Urlaub, Krank etc. einzutragen.
Um die standardmäßigen Kontextmenüs in den jeweiligen Tabellenblättern auszuschalten, habe ich folgenden Code in einem Modul implementiert, was auch reibungslos funktioniert:
Sub KontextmenüsDeaktivieren()
Application.ActiveSheet.CommandBars("Cell").Enabled = False
Application.CommandBars("System").Enabled = False
Application.CommandBars("Toolbar list").Enabled = False
Application.CommandBars("Ply").Enabled = False
Application.CommandBars("Column").Enabled = False
Application.CommandBars("Row").Enabled = False
End Sub
Die Möglichkeit, Urlaub, Krankheit etc. einzutragen und sich den Überblick über die angesetzen Mitarbeiter anzuzeigen zu lassen, wird über folgenden Code realisiert, der im Tabellenblatt für Januar untergebracht ist:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Intersect(Range("C6:AG48"), ActiveCell) Is Nothing _
Then
Else
frmDienste.Show
End If
If Intersect(Range("C4:AG4"), ActiveCell) Is Nothing Then
Else
StärkeBerechnen
End If
End Sub
Leider funktioniert dies nur in dem Tabellenblatt für Januar, nicht aber in allen anderen Tabellenblättern, die erst nach Klick auf die jeweiligen Buttons erstellt werden.
Wie bewerkstellige ich es, dass diese Funktion in dem gesamten Projekt verfügbar ist ?
Danke im Voraus für Eure Bemühungen,
Holger