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

Bei Speichern reinkopieren...

Bei Speichern reinkopieren...
11.12.2006 12:52:50
Walter
Hallo Zusammen,
ich speichere gerade eine Sheet ab, nun möchte ich direkt etwas in die
"DieseArbeitsmappe" kopieren, geht das ?
Mein Problem, aus der akt. Sheet wird eine Name mit akt. Datum.
Z.B. Sheet Name: "Muster", wird "Muster 11.12.06.xls" !
Ich möchte die Neue Datei z.B. "Muster 11.12.06.xls" das Makro mit einem VBA-
Schutz versehen, einem Passwort.
Hatte mal dieses Makro erhalten:

Sub VBA_Schutz_SETZEN()
Dim Password As String
Password = "ww"
If ActiveWorkbook.VBProject.Protection Then
Application.DisplayAlerts = False
Application.ScreenUpdating = False
SendKeys "%{F11}"
SendKeys "%xi"                          'damit Passwort
SendKeys Password
SendKeys "{TAB}{Enter}"
SendKeys "{TAB 9}{RIGHT}{TAB} {TAB}"
SendKeys "{DEL}{TAB}{DEL}{TAB}{Enter}"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End If
End Sub

Ich müßte dann beim abspeichern als NEUE Datei mit akt. Datum, direkt das Makro für den Schutz reinkopieren, weiß allerdings nicht, wie ich das anstellen soll.
Vielleicht hat jemand eine Idee ?
mfg Walter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei Speichern reinkopieren...
11.12.2006 17:02:47
Anton
Hallo Walter,
speichern macht man so:

Sub Datei speichern()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Eigene Dateien\Muster 11.12.06.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True
End Sub

Ich denke den Rest kannst Du anpassen.
Servus,
Anton
Nein so nicht
11.12.2006 17:37:09
Walter
Hallo Anton,
ja so wird gespeichert, ich möchte gern VBA Passwortschutz speichern. Wenn
die NEUE Datei mit Datum gespeichert ist habe ich diese noch nicht geschlossen.
Jetzt sollte man ( weiß nicht wie) in die akt. gespeicherte Datei in
"DieseArbeitsmappe" den Makrobefehl reinspeichern, so daß beim nächsten öffnen
man nicht in die Makros kann.
mfg Walter
Anzeige
AW: Nein so nicht
Orakel
Hallo Walter,
sofern Dein Makro funktioniert packe es standardmäßig in ein Modul deiner Datei "Muster". In "Diese Arbeitsmappe"

Private Sub Workbook_Open()
If ThisWorkbook.Name <> "Muster.xls" Then
Call VBA_Schutz_SETZEN
End If
End Sub

Dann sollte das Schutzmakro beim öffnen der Datei aufgerufen werden, sofern die Datei nicht "Muster" heißt.
Gruß
Orakel
AW: besser ist
Orakel

Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub

Habe ich nicht verstanden, Warum ?
12.12.2006 11:13:50
Walter
Hallo Orakel,
Ich habe die Datei jetzt als eigenständige Datei mit akt. Datum, wie soll ich den vorher
der anderen Datei mitteilen kopieren jetzt in die NEUE Datei ?
Vielleicht noch einmal zur Erläuterung, ich bin nicht ganz so fit für Erklärungen:
Ich habe eine Datei z.B. "Muster.xls" in dieser "Muster.xls" befinden sich mehrere
Sheets z.B. Muster00, Muster01 bis 05 .
Nun wird (das funktioniert) entsprechend dem Namen der Sheet: "Muster00" eine
eigenständige Datei mit Datum z.B. "Muster00 vom 12.12.06".
Die Makros sind ja enthalten, werden ja mittels Command-Button aktiviert.
Nun möchte ich der NEUEN Datei den VBA Schutz reinsetzen, damit der Anwender
der öffnet, nicht in die Makros kann.
mfg Walter
Anzeige
AW: Habe ich nicht verstanden, Warum ?
Orakel
Hallo Walter,
so ganz klar ist Deine Beschreibung aber auch nicht :-)
Es wäre auch einfacher gewesen, wenn Du den Code zum Erzeugen der "eigenständigen " Datei gezeigt hättest. Naja, hab das jetzt mal so wie ich es mir vorstelle umgesetzt.
In das Modul2 packst Du Deinen "Schutzcode". In die Zeile vor Deinem Codeaufruf setzt Du noch "Option Private Module" ohne Anführungszeichen, damit man den Code später auch nicht so leicht "von Hand" starten kann.
In das Modul1 packst Du folgenden Code:
Sub Neue_Datei()
Dim sPath As String, sFile As String
Application.ScreenUpdating = False
sPath = "D:\China\" 'anpassen
sFile = Format(" Muster -" & Date) & ".xls"
    'exportiert Modul2 nach sPath:
    ThisWorkbook.VBProject _
    .VBComponents("Modul2").Export sPath & "basMain.bas"
ActiveSheet.Copy
    'importiert Modul2:
    With ActiveWorkbook.VBProject
    .VBComponents.Import sPath & "basMain.bas"
    'benennt Modul um:
    .VBComponents("Modul2").Name = "MeinModul"
    End With
    'löscht Modul in sPath:
    Kill sPath & "\basMain.bas"
    MsgBox "Modul wurde integriert!"
On Error GoTo ende 'Fehlerbehandlung
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs sFile
MsgBox "Schutzmakro wird aufgerufen"
Call VBA_Schutz_SETZEN 'setzt den Makroschutz, so er denn funktioniert :-)
ActiveWorkbook.Close savechanges:=False
MsgBox "Das Blatt wurde unter " _
& sPath & sFile & " gespeichert!"
Application.ScreenUpdating = True
ende:
End Sub
Ruf das Makro "Neue_Datei" auf und schau mal.
Gruß
Orakel
Anzeige
Danke, melde mich da...
13.12.2006 11:41:09
Walter
Hallo Orakel,
da ich nacher bis Morgen nicht in der Firma bin, ich melde mich dann sofort,
herzlichen Dank bisher,
mfg Walter
und zu
13.12.2006 22:04:50
Schliesser
.
wo Du recht hast...
Orakel
hast Du Recht :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige