Microsoft Excel

Herbers Excel/VBA-Archiv

Ereignis "BeforeSave" - ".Find" geht nicht?

Betrifft: Ereignis "BeforeSave" - ".Find" geht nicht? von: Oliver
Geschrieben am: 13.11.2007 09:56:01

Guten Morgen zusammen,

Ich lasse über das Ereignis "BeforeSave" mit folgendem Code abfragen, ob der Benutzer zu einer gewissen Gruppe gehört. Bei bestimmten Gruppen wird das speichern nämlich verhindert!

<<

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 dim Gru as string
 Gruppen Gru
End Sub


>>

<<
Sub Gruppen(Gru as string)
dim ws_akt as object: ws_akt = activesheet
dim cf1 as range: Set cf1 = ws_akt.range("A:A").find("Gruppe",LookIn:=xlValues,LookAt:=xlwhole)
Gru = ws_akt.cells(cf1.row,2)
End Sub


>>

Wenn ich die Variable Gru aus dem Modul Gruppe an einer anderen Stelle füllen lasse, dann klappt es. Nur nicht, wenn ich über das Ereignis "BeforeSave" komme.

Hat hier jemand eine Idee, wie man das lösen könnte? Ich möchte mich nicht festlegen auf "cells(3,2)".

Gruß,

Oliver.

  

Betrifft: AW: Ereignis "BeforeSave" - ".Find" geht nicht? von: Andi
Geschrieben am: 13.11.2007 10:07:35

Hi,

Du weist der Variable Gru im BeforeSave-Ereignis überhauptkeinen Wert zu, sondern deklarierst sie nur.

Schönen Gruß,
Andi


  

Betrifft: AW: Ereignis "BeforeSave" - ".Find" geht nicht? von: Oliver
Geschrieben am: 13.11.2007 10:44:15

Hallo Andi,

das ist soweit erstmal richtig. Die Variable Gru wird dann über das Modul Gruppe gefüllt. Und im weiteren Verlauf von "BeforeSave" wird Gru dann verwendet. VBA bringt als Fehlermeldung bei "Set cf1=..." Laufzeitfehler 91 "Objektvariable oder With-Blockvariable nicht festgelegt.


  

Betrifft: AW: Ereignis "BeforeSave" - ".Find" geht nicht? von: Horst
Geschrieben am: 13.11.2007 14:46:46

Hi,

falsch: dim ws_akt as object: ws_akt = activesheet

richtig: dim ws_akt as Worksheet: Set ws_akt = activesheet

mfg Horst


 

Beiträge aus den Excel-Beispielen zum Thema "Ereignis "BeforeSave" - ".Find" geht nic"