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

Makros aktivieren

Makros aktivieren
28.12.2006 11:06:13
Ute
Hallo Leute,
folgendes Problem !
Sofern der Benutzer die Makros nicht aktiviert hat, soll die Tabelle nicht änderbar sein, oder sich automatisch schließen.
Kann mir jemand dafür eine Lösung anbieten ?
Vielen Dank im Voraus !

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros aktivieren
28.12.2006 11:57:57
Nepumuk
Hallo Ute,
mit automatisch schließen is da nix, wenn keine Makros laufen. Das einfachste wäre, die Mappe mit einem Lese- Schreibschutzkennwort zu versehen, welches nur du kennst. Die Mappe wird über eine .exe gestartet, in welcher sich auch das Kennwort befindet. Dann ist es völlig egal was der User versucht, die Makros werden immer gestartet. Selbst wenn die Makrosicherheit auf Hoch gestellt ist. Hast du VB oder VB.net ?
Gruß
Nepumuk
AW: Makros aktivieren
28.12.2006 12:06:07
Ute
Hallo Nepomuk,
wie soll das denn aussehen ? - mich würde die Zeile mit dem Kennwort brennend interressieren.
AW: Makros aktivieren
28.12.2006 12:43:42
Nepumuk
Hallo Ute,
ich hab dir mal ein Beispiel gemacht.
https://www.herber.de/bbs/user/39217.zip
In dem Ordner findest du eine Excelmappe welche geschützt ist, eine .EXE und die Projektdateien (fallst du VB6.0 hast, kannst du die ja öffnen oder auch im VBA-Editor von Excel importieren. Der Code in der .EXE sieht so aus:
Option Explicit

Private Sub Main()
    Dim objApplication As Object
    Set objApplication = CreateObject("Excel.Application")
    objApplication.Workbooks.Open Filename:=App.Path & "\Mappe1.xls", _
        Password:=Chr$(78) & Chr$(101) & Chr$(112) & Chr$(117) & Chr$(109) & Chr$(117) & Chr$(107)
    objApplication.Visible = True
    Set objApplication = Nothing
End Sub

Das Kennwort der Mappe ist natürlich "Nepumuk" :-) Das Kennwort erzeuge ich durch eine Aneinanderreihung von Chr-Funktionen, damit es nicht mit einem Hex-Editor aus der .EXE ausgelesen werden kann. Die Mappe muss sich im selben Ordner befinden, wie die .EXE
Gruß
Nepumuk
Anzeige
AW: Makros aktivieren
28.12.2006 12:00:43
Matthias
Hallo Ute,
mein Vorschlag:

' Mappe nur mit aktivierten Makros öffnen
' Anleitung:
' Erstelle in der betreffenden Mappe ein Blatt mit Namen "Warnung"
' (Konstante OhneMakros kann angepasst werden)
' schreibe auf dieses Blatt eine Info, dass die Makros aktiviert sein müssen,
' um mit der Mappe zu arbeiten
' kopiere folgenden Code ins Modul "DieseArbeitsmappe"
Option Explicit
Const OhneMakros = "Warnung" 'Name des Blattes mit der Info
Const pwWarnung = "12345" 'Kennwort des Blattes mit der Info
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Saved = False Then
Select Case MsgBox("Sollen Ihre Änderungen in '" & Me.Name & "' gespeichert werden?", vbYesNoCancel + vbExclamation)
Case vbYes
Speichern
Case vbNo
Me.Saved = True
Case vbCancel
Cancel = True
End Select
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
If SaveAsUI Then
MsgBox "Speichern unter... nicht möglich!" 'müsste falls erforderlich noch erweitert werden
Else
Speichern
End If
End Sub
Private Sub Workbook_Open()
AllesEinblenden
On Error Resume Next
'beim Speichern gemerktes aktives Blatt anzeigen:
Sheets(Sheets(OhneMakros).Cells(Rows.Count, Columns.Count).Value).Activate
Me.Saved = True
End Sub
Private Sub AllesAusblenden()
Dim sh As Worksheet
Sheets(OhneMakros).Visible = True
For Each sh In Me.Worksheets
If sh.Name <> OhneMakros Then sh.Visible = xlSheetVeryHidden
Next sh
End Sub
Private Sub AllesEinblenden()
Dim sh As Worksheet
For Each sh In Me.Worksheets
sh.Visible = True
Next sh
Sheets(OhneMakros).Visible = xlSheetVeryHidden
End Sub
Private Sub Speichern()
Dim sh As Worksheet
Dim fehler As Boolean
Set sh = ActiveSheet
'geöffnetes Blatt merken:
With Sheets(OhneMakros)
.Unprotect Password:=pwWarnung
.Cells(Rows.Count, Columns.Count) = sh.Name
.Protect Password:=pwWarnung
End With
Application.EnableEvents = False
Application.ScreenUpdating = False
AllesAusblenden
On Error Resume Next
Me.Save
If Err.Number > 0 Then
MsgBox Err.Description, , "Fehler " & Err.Number
fehler = True
End If
On Error GoTo 0
AllesEinblenden
sh.Activate
Application.EnableEvents = True
Application.ScreenUpdating = True
If Not fehler Then Me.Saved = True
End Sub

Gruß Matthias
Anzeige
AW: Makros aktivieren
28.12.2006 12:10:23
Ute
Danke Matthias, werde ich gleich mal ausprobieren !

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige