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

Lese-Kennwort nicht eingeben müssen

Lese-Kennwort nicht eingeben müssen
25.01.2004 00:39:22
TCO99
Hallo zusammen,
ich habe eine Datei, die auf eine andere Datei zugreift, welche mit einem Lese-Kennwort geschützt ist. Damit ich bei jedem Öffnen der ersten Datei nicht nach dem Lese-Kennwort der zweiten datei gefragt werde, suchte ich einen Code. Folgenden Code habe ich jetzt:
Workbooks.Open Filename:="Quelle.xls", Password:="12345"
Vielen Dank nochmal an Matthias G!
Jetzt habe ich diesen Code so auch in ein Modul, in ein Klassenmodul und unter "diese Arbeitsmappe" eingebaut. Aber leider klappt es nicht. Was mache ich falsch? Muss der Code noch ergänzt werden?
Vielen Dank im Voraus.
Erdogan

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 00:48:06
Matthias G
Hallo Erdogan,
Danke für den Dank :-)
poste doch mal den Code, damit ich mir eine Vorstellung machen kann.
Gruß,
Matthias
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 00:51:44
TCO
Hi,
im Grunde habe ich lediglich im VBA-editor auf "Modul" und nachher noch auf "Klassenmodul" geklickt und darin den Code eingegeben.
Nochmal zur Erinnerung:

Workbooks.Open Filename:="Quelle.xls", Password:="12345"
Mehr steht da auch nicht. Wenn ich jetzt die Datei speichere und erneut öffne, fragt es wieder nach dem Kennwort. Ich glaube, ich füge den Code an falscher Stelle ein. oder?
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 00:59:52
Matthias G
Hallo Erdogan,
der steht an Falscher Stelle, ja.
Soll die 2. Datei beim Öffnen der Ersten automatisch geöffnet werden? Wenn ja, dann mach folgendes:
Ich VBA-Editor auf "DieseArbeitsmappe" doppelklicken.
Dann siehst Du rechts im großen Fenster das Codemodul dazu.
hier folgenden Code:

Private Sub Workbook_Open()
Workbooks.Open Filename:="Quelle.xls", Password:="12345"
ThisWorkbook.Activate
End Sub

Mit "ThisWorkbook.Activate" verhinderst Du, dass die Zweite Datei gleich aktiv ist (ist ja vielleicht nicht erwünscht).
Der Code wird nun beim Öffnen dieser Mappe einmalig ausgeführt.
Siehst Du die Listboxen oben im Codemodul? Hier kannst Du die Prozeduren weiterer Ereignisse erzeugen, z.B. beim Aktivieren, vor dem Speichern, vor dem Schließen, ...
Viele Grüße,
Matthias
Anzeige
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 01:15:12
TCO99
Hallo Matthias,
ich sehe, dass ich noch viel dazulernen muss!
Die Listboxen sehe ich. Es sind zwei. Ich werde mich etwas daran versuchen.
Ist es zu bewerkstelligen, dass die Datei "Quelle" ohne geöffnet zu werden, von der Zieldatei abgefragt werden kann? In meinem Fall ist es nämlich so, dass die Datei "Ziel" zwar die Daten der "Quelle" beziehen soll, dem Anwender aber nicht alle Daten offen legen darf. Das wäre nämlich der Fall, wenn die "Quelle" geöffnet wird. So könnte der Anwender Veränderungen in der "Quelle" anstellen. Auch ein schreibgeschütztes Öffnen wäre nicht gut.
Vielleicht so:

Private Sub Workbook_Open()
Workbooks.ASK Filename:="Quelle.xls", Password:="12345"
ThisWorkbook.Activate
End Sub

Das ASK soll sowas wie "aktualisiere" heißen.
Du, ich bin dir für deine Hilfe sehr dankbar!
Gruß
Erdogan
Anzeige
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 01:32:20
Matthias G
Hallo Erdogan,
Es gibt zwei Möglichkeiten:
also Du kannst einmal auf der Quelldatei auf die Zieldatei setzen.
Also wenn bestimmte Zellinhalte von der Zieldatei stammen sollen, kannst Du das z.B.so machen:
in Zelle A1 der Datei Ziel.xls eingeben:
=[Quelle.xls]Tabelle1!$A$1
Beim Öffnen der Datei Ziel.xls kommt fortan der Hinweis:
"Diese Datei enthält Verknüpfungen zu anderen Datenquellen .... aktualisieren? Ja - Nein"
_______________________________________________________
Wenn Du das nicht willst, kannst Du so vorgehen, wie ich es in dem Beitrag an Jonathan geschrieben habe:
http://xlforum.herber.de/messages/370191.html
(Das Thema ist ein wenig anders, es geht mir hier um "ScreenUpdating" zur Verhinderung der Bildschirmaktualisierung. Der User kriegt also nichts mit.)
Also die zweite Möglichkeit:
ins Modul "DieseArbeitsmappe":

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="E:\TCO99\Quelle.xls"
ThisWorkbook.Activate
Sheets("Tabelle1").Range("A1").Value = Workbooks("Quelle.xls").Sheets("Tabelle1").Range("A1").Value
Workbooks("Quelle.xls").Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub

Der Nachteil der 2. Möglichkeit ist, dass die Makros unbedingt aktiviert sein müssen, sonst tut sich gar nichts.
Viele Grüße,
Matthias
Anzeige
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 01:51:00
TCO
Hallo Matthias,
>> in der Befürchtung, deine Geduld zu strapazieren :-( <<
Das ist eine gute Möglichkeit, glaube ich. Ich glaube auch, verstanden zu haben, dass der User nichts vom Öffnen der Quelle mitbekommt, weil du es mit:

Application.ScreenUpdating = False
unterdrückst. Aber bei diesem Codebeispiel müsste ich, wenn ich, sagen wir mal, 1000 Verknüpfungen habe, den Code um das zigfache erweitern. Richtig? Also Ergänzen von Zeilen, die statt der "A1" z.B. "A2" enthalten.

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="E:\TCO99\Quelle.xls"
ThisWorkbook.Activate
Sheets("Tabelle1").Range("A1").Value = Workbooks("Quelle.xls").Sheets("Tabelle1").Range("A1").Value
Workbooks("Quelle.xls").Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub


Ich hatte die Variante gewählt, die du mit dem Hinweis "Aktualisieren...Ja/Nein" meintest. Ich wünschte mir, dass beim Klick auf "Ja" > Aktualisieren, keine Kennwortabfrage erscheint.
Wie wäre es mit einer dritten Variante:


Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="Quelle.xls", Password:="12345"
ThisWorkbook.Activate
Workbooks("Quelle.xls").Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub

Den Code habe ich frecherweise aus deinen Vorschlägen zusammengestellt :-)
Und versteht meine Datei dann überhaupt, dass dieser Code für das Aktualisieren der Verknüpfungen sein soll? Nicht das die Quelle geöffnet und dann geschlossen wird und es dann aber nichts mit dem Aktualisieren der Verknüpfungen zu tun hat.
Wenn du keine Zeit oder Lust mehr hast, zu antworten, bin ich dir nicht böse, ich bin mit dieser Hilfe schon einen rießen Schritt weiter!
Vielen Dank!
Erdogan
Anzeige
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 02:05:26
Matthias G
Hallo Erdogan,
deine dritte Variante geht leider nicht.
Erst wird die Verknüpfung aktualisiert, und dann wird die Workbook_Open-Prozedur ausgeführt.
Aber wenn deine Daten zusammenhängen, kann man auch ganze Bereiche (sogar ganze Tabellenblätter) von der einen in die andere Mappe kopieren...
Beispielcode:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="E:\TCO99\Quelle.xls", Password:="12345"
ThisWorkbook.Activate
'kopiert A1:A20...
Workbooks("Quelle.xls").Sheets("Tabelle1").Range("A1:A20").Copy
'...ab A1 in die andere Mappe
Sheets("Tabelle1").Range("A1").PasteSpecial
Application.CutCopyMode = False 'entfernt den Kopierrahmen (Laufrahmen)
Workbooks("Quelle.xls").Close SaveChanges:=False
Range("A1").Select
Application.ScreenUpdating = False
End Sub

Grüße,
Matthias
P.S.: Ich halte schon noch ein bisschen aus...
Anzeige
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 02:18:22
TCO99
Hallo Matthias,
Das erst die Verknüpfung aktualisiert und dann die Workbook_Open-Prozedur ausgeführt wird, legt mir weitere Steine in den Weg. Ok, ein anderes Versuch: was wäre, wenn ich die Aktualisierung nicht auf automatisch stelle, sondern nur auf manuell. dann könnte ich doch eventuell eine Schaltfläche einbauen, nennen wir sie >Update< und bei einem Klick auf diese Schaltfläche könnten die Verknüpfungen nachträglich aktualisiert werden.
Dann müsste in den Makrocode :

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Workbooks.Open Filename:="Quelle.xls", Password:="12345"
ThisWorkbook.Activate
Workbooks("Quelle.xls").Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub

noch etwas eingefügt werden, dass externe Verknüpfungen aktualisiert werden sollen. Was hälst du davon?
Oder ist die Information über die Aktualisierungsmethode (automatisch/manuell) nicht in der Datei, sondern in der Excelinstallation der Anwender gespeichert?
Fragen über Fragen :-)
Erdogan
Anzeige
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 02:40:32
Matthias G
Hallo Erdogan,
Ich bekomme die Abfrage nach Aktualisierung der Verknüpfungen am Anfang irgendwie nicht weg...
Aber wenn man auf Nein klickl, kann man durch die Workbook_Open-Sub allerdings die Mappe Quelle.xls öffnen und damit werden die Daten -SCHWUPPS- aktualisiert... Wow, das hätte ich selbst nicht gedacht!
Gruß,
Matthias
AW: Lese-Kennwort nicht eingeben müssen
25.01.2004 02:51:52
TCO99
Hallo Matthias,
ich danke dir für deine Hilfe und für deine Zeit!
Dank dir bin ich schon ein riesiges Stück weiter. Ich bleibe am Ball. Sollte ich es so gelöst bekommen, wie ich es mir am Anfang gedacht hatte, schreibe ich es dir.
Alles Gute und viele Grüße!
Erdogan
Anzeige
AW: ok bis bald :-) - oT
25.01.2004 02:55:17
Matthias G
-

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige