Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prozedur in allen Tabellenblättern verfügbar mache

Prozedur in allen Tabellenblättern verfügbar mache
15.01.2006 00:18:21
Holger
Hallo,
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
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prozedur in allen Tabellenblättern verfügbar m
15.01.2006 00:42:16
Josef
Hallo Holger!
In das Modul "DieseArbeitsmappe"!
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Intersect(Range("C6:AG48"), Target) Is Nothing Then frmDienste.Show

If Not Intersect(Range("C4:AG4"), Target) Is Nothing Then StärkeBerechnen

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Prozedur in allen Tabellenblättern verfügbar m
15.01.2006 00:50:49
Holger
Hallo Sepp!
Super, das hat funktioniert.
Vielen Dank für Deine schnelle & kompetente Antwort !!
Gruß,
Holger
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige