Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
308to312
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
308to312
308to312
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

per VBA CUT-Methode blockieren

per VBA CUT-Methode blockieren
18.09.2003 08:32:47
Joe
Hallo,

ich möchte per VBA den Befehl

Selection.Cut

blockieren, so daß es nicht möglich ist in einem Tabellenblatt Zellen auszuschneiden. Gibt es da einen VBA Code den man ins Tabellenbaltt einfügen kann?

Gruß
Joe

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per VBA CUT-Methode blockieren
18.09.2003 08:40:27
Matthias G
Hey Joe,
Es ist nicht möglich, den VBA-Befehl zu verhindern.
aber du kannst die entsprechenden Menübefehle deaktivieren, sowie die Tastenkombination Strg-X. Ist es das, was du brauchst?

Gruß,
Matthias
AW: Der Code
18.09.2003 08:51:50
Matthias G
Hallo Joe,
hier ist der Code:

Sub DisableCut()
Dim cbl As CommandBarControls
Set cbl = CommandBars.FindControls(ID:=21)
For i = 1 To cbl.Count
cbl(i).Enabled = True
Next i
Application.OnKey "^x", ""
End Sub

Um die Befehle wieder zu aktivieren, ersetze "True" durch "False" und Application.OnKey "^x", "" durch
Application.OnKey "^x"

Gruß,
Matthias
Anzeige
AW: Der Code HILFE !!!
18.09.2003 09:23:48
Joe
Hallo Matthias,
ich habe den Code ins Tabellenblatt unter "Worksheet_Activate" bzw. "Worksheet_DeActivate" eingefügt. Das klappt gut aber:

Wie bekomme ich es hin, daß der Code nur aktiv ist wenn auch das Tabellenblatt das gerade aktive ist, soll heißen wenn ich über das Menü ein neues Fenster wähle, dann ist die "Ausschneidefunktion" immer noch deaktiviert. Das soll nicht sein. Gibts da noch was?

Gruß
Joe

AW: Der Code HILFE !!!
18.09.2003 09:31:42
Matthias G
Hallo Joe,
dann darfst du den Code nicht in "DieseArbeitsmappe" setzen, sondern nur zum Code des benötigten Tabellenblattes unter Private Sub Worksheet_Activate() bzw. Private Sub Worksheet_Deactivate() (Doppelklick auf das Arbeitsblatt im Projekt-Explorer).

Viel Erfolg,
Matthias
Anzeige
Nochmal HILFE !!!
18.09.2003 09:39:45
Joe
Ja das habe ich ja so gemacht ... aber:

wenn ich in der gleichen Arbeitsmappe andere Tabellenblätter auswähle geht das auch prima ist ja auch klar, da das Tabvellenblat deaktiviert + aktiviert wird.

Aber wenn ich eine neue Arbeitsmappe auswähle und dann wird die Ausschneidefunktion nicht wieder aktiviert, weil (ist ja klar) das Tabellenblatt wo der Code drin steht nicht deaktiviert wurde sondern nur die Arbeitsmappe gewechselt wurde.

Also die Frage nochmal: Geht es irgendwie, daß der Code deaktiviert wird wenn ich eine andere Arbeitsmappe wähle und wieder aktiviert wird wenn ich die Arbeitsmappe wähle in der das tabellenblatt steht?

Gruß
Joe
Anzeige
AW: Nochmal HILFE !!!
18.09.2003 09:46:10
Matthias G
Hey Joe,
dann musst du den Deaktivierungscode sowohl dem Sheet-Deactivate des betreffenden Arbeitsblattes als auch dem Workbook-Deactivate der gesamten Arbeitsmappe zuordnen.
Du kannst den Code ja in ein Modul auslagern und im Klassenmodul nur den Prozeduraufruf setzen.

Gruß,
Matthias
AW: Nochmal HILFE !!!
18.09.2003 09:55:32
joe
Hallo,

ja ich glaube das wäre es ... aber habe den code unter

Private Sub Workbook_WindowActivate(ByVal Wn As Window)

gestellt. Das funktioniert nicht, weil es gibt jetzt nen LaufzeitfehlerFehler bei

Set cbl = CommandBars.FindControls(ID:=21)

es steht geschrieben: Objektvariable oder With-Blockvariable nicht festgelegt

Fehlt da was im Code?

Gruß
Joe
Anzeige
AW: und nochmal Hilfe
18.09.2003 09:58:16
Matthias G
Hallo Joe,
den DEaktivierungscode musst du hier reinsetzen:

Private Sub Workbook_Deactivate()
'HIER REIN
End Sub

Hat nichts mit Fenster-Deaktivierung zu tun.

Gruß,
Matthias
so jetzt läuft es Danke!
18.09.2003 10:03:26
Joe
Hallo,

habe den Code in ein Modul ausgelagert und habe dann


Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Ausschneiden_Deaktivieren
End Sub



Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Ausscheiden_Aktivieren
End Sub


Merkwürdigerweise klappt das ohne Fehlerhinweis. Das muß man nicht verstehen ...
Klappt aber genau so wie ich es brauche.

Danke
Joe
Anzeige
AW: Bitteschön! - o.T.
18.09.2003 10:15:56
Matthias G
-
AW: per VBA CUT-Methode blockieren
18.09.2003 08:53:38
Joe
Hallo,

wie deaktiviere ich denn den Menübefehl "Ausschneiden" ?

Joe

PS: Ich brauche das ganze dafür, daß in einem geschützen tabellenblatt der user nicht die nicht gesperrten zellen ausschneidet und an anderer stelle einfügt.
AW: per VBA CUT-Methode blockieren
18.09.2003 08:53:46
Joe
Hallo,

wie deaktiviere ich denn den Menübefehl "Ausschneiden" ?

Joe

PS: Ich brauche das ganze dafür, daß in einem geschützen tabellenblatt der user nicht die nicht gesperrten zellen ausschneidet und an anderer stelle einfügt.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige