Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Arbeitsmappe freigeben sperren

Betrifft: Arbeitsmappe freigeben sperren von: Pepi
Geschrieben am: 16.11.2012 08:54:03

Hallo zusammen
Wenn eine Arbeitsmappe freigegeben wird, funktionieren offenbar die Makros nicht mehr - dies darf auf keinen Fall passieren.
Wie kann ich diese Funktion ausschalten? - habe leider im WEB keine brauchbare Antwort gefunden.

vielen Dank für Tipps
Pepi

  

Betrifft: AW: Arbeitsmappe freigeben sperren von: Klaus M.vdT.
Geschrieben am: 20.11.2012 14:11:29

Hallo Pepi,
so wirklich verhindern kann man das wohl nicht. Ich hab dazu diese Lösung,

If activeworkbook.MultiUserEditing Then 
    Msgbox "Deaktivieren Sie bitte die Freigabe, wenn Sie Makros verwenden wollen." 
    Exit Sub 
End if
die ich hier gefunden habe:
http://www.office-loesung.de/ftopic486928_0_0_asc.php

Grüße,
Klaus M.vdT.


  

Betrifft: AW: Arbeitsmappe freigeben sperren von: Pepi
Geschrieben am: 20.11.2012 15:51:26

Hallo Klaus
Ich habe dieses Makro auch gefunden, doch wo soll ich es einbauchen, dass es voll zum tragen kommt?
Ich dachte, dass mann dies Funktion einfach ausschalten kann, wie drucken oder speichern. Ich habe auch das foldende Makro auf der von Dir empfohlenen Seite gefunden, doch passiert nichts mit Office-2010. Evt ist die ID eine andere.

Private Sub Workbook_Deactivate()
Dim CB
For Each CB In Application.CommandBars.FindControls(ID:=2040)
    CB.Enabled = True
Next
End Sub

Da nach dem Freigeben durch einen Benutzer die Makros deaktiviert sind, macht auch ein Makro, das die Freigabe wieder deaktiviert keinen Sinn.
mfg
Pepi


  

Betrifft: "FindControls(ID:=????)" für ArbeitsmappeFreigeben von: Klaus M.vdT.
Geschrieben am: 21.11.2012 08:16:39

Da nach dem Freigeben durch einen Benutzer die Makros deaktiviert sind, macht auch ein Makro, das die Freigabe wieder deaktiviert keinen Sinn.
Doch!
Geh mal Schritt für Schritt ran: Zunächst ist die Mappe NICHT freigegeben und die Makros laufen. Wenn ein Makro das Freigeben verhindert, kann die Mappe nicht freigegeben werden. Wenn die Mappe nicht freigegeben werden kann, wird das Makro nie deaktiviert. Das Makro verhindert die Freigabe. LOOP.

Natürlich könnte ein User "einfach" die Datei ohne Makro starten und freigeben. Ein User könnte aber auch die Datei öffnen, eventuelle Passwörter hacken und den VBA Code löschen, der das Freigeben verhindern soll. Oder er könnte solange mit einem Schraubenschlüssel auf dich einschlagen, bis du selbst die Datei freiwillig freigibst (ok, übertrieben, aber du verstehst meinen Punkt). Darum bleibe ich dabei: Am meisten Sinn macht ein Hinweis (Textfeld, MsgBox ...) dass die Datei nicht freigegeben werden darf! Will der User trotzdem diese Option nutzen, ist das bösartige Sabotage und dagegen kannst du dich nicht wehren.

Im übrigen halte ich persönlich nichts davon, in den Menüleisten fremder User rumzufuschen - entsprechende Kommentare stehen auch im verlinkten Thread. Aber ich bin nicht die Excelpolizei, darum musst du das für dich selbst entscheiden.

Das gesuchte Control-ID fürs 2010er Excel kenne ich nicht, darum lasse ich den Tread offen und ändere den Betreff auf etwas aussagekräftigeres.

Grüße,
Klaus M.vdT.


  

Betrifft: AW: "FindControls(ID:=????)" für ArbeitsmappeFreigeben von: Pepi
Geschrieben am: 22.11.2012 15:57:54

Hallo Klaus
Ich habe nun das Markoschnipsel in einige wichtige Makros eingebaut. Ich gehe auch eher von Fehlbedienung aus und nicht von kriminellen Absichten - nochmals vielen Dank
mfg
Pepi


 

Beiträge aus den Excel-Beispielen zum Thema "Arbeitsmappe freigeben sperren"