Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
716to720
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
716to720
716to720
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige