Anzeige
Archiv - Navigation
448to452
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
448to452
448to452
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

verknüpfte Mappe nur in Verbind mit Quelle öffnen

verknüpfte Mappe nur in Verbind mit Quelle öffnen
04.07.2004 10:56:35
Fritz
Hallo VBA-Experten,
wer von euch kann mir Hilfe anbieten:
Ich habe eine Arbeitsmappe, die sensible Daten enthält und deshalb passwortgeschützt ist. Eine andere Arbeitsmpappe bezieht einzelne Daten aus dieser Mappe, ist also mit dieser Mappe verknüpft. Um diese(verknüpfte) Arbeitsmappe nicht auch noch mit einem Passwort schützen zu müssen, würde ich gerne mittels VBA sicherstellen, dass diese Mappe überhaupt nur dann geöffnet werden kann, wenn die Quelldatei bereits geöffnet ist. Wie kann ich das erreichen?
Für jegliche Form von Hilfe bereits jetzt schon vielen Dank.
Mfg
Fritz
AW: verknüpfte Mappe nur in Verbind mit Quelle öffnen
Ulf
Das geht nur mittels Klassenmodul z.B. in der Personl.xls.
Bist du in der Lage das für deine Verhältnisse anzupassen?
Ulf
AW: verknüpfte Mappe nur in Verbind mit Quelle öffnen
Fritz
Hallo Ulf,
danke für Deinen Hinweis.
Meine VBA Kenntnisse reichen mit Sicherheit nicht aus, ohne weitere Hilfe das zu bewerkstelligen.
Gruß
Fritz
AW: verknüpfte Mappe nur in Verbind mit Quelle öffnen
Ulf
Gib mal die Namen deiner Mappen durch.
Ulf
AW: verknüpfte Mappe nur in Verbind mit Quelle öffnen
Fritz
Hallo Ulf,
ich musste kurzfristig dringendes erledigen, deshalb die verspätete Antwort.
Die Quellmappe heißt WEG2004.XLS und die damit verknüpfte Mappe WEG-ERG.XLS
Danke für Deine Bemühungen.
Gruß
Fritz
AW: verknüpfte Mappe nur in Verbind mit Quelle öffnen
Ulf
Mir war nicht ganz klar, was mit WEG-ERG.XLS passieren soll, wenn
WEG2004.XLS geschlossen wird?
Ich habs mal so gemacht, dass die automatisch geschlossen wird, wenn
keine Veränderungen vorgenommen wurden, ansonsten wird nachgefragt,
ob die Änderungen gespeichert werden sollen.
Keine ganz leichte Kost:
''Der Code muss in deine PERSONL.XLS
'=========================================================

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Unset_Class
End Sub

'=========================================================

Private Sub Workbook_Open()
Call Set_Class
End Sub

'=========================================================
''Dieser Code muss in ein Standardmodul der PERSONL.XLS
Option Explicit
Dim AppObject As New clsWorkbook
'=========================================================
Sub Set_Class()
If AppObject.App Is Nothing Then Set AppObject.App = Application
End Sub
'=========================================================
Sub Unset_Class()
Set AppObject.App = Nothing
End Sub
'=========================================================
''Dieser Code muss in ein Klassenmodul innerhalb der PERSONL.XLS
''Das Klassenmodul muss zwingend clsWorkbook heißen
Option Explicit
Public WithEvents App As Application
Const M1 As String = "WEG2004.XLS"
Const M2 As String = "WEG-ERG.XLS"
Dim bolOffen As Boolean, bolConfirm As Boolean, msg As Integer
''=================================================================================

Private Sub App_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
If UCase(Wb.Name) = M1 Then bolOffen = False
If bolConfirm Then Exit Sub
If Not bolOffen Then
For Each Wb In Workbooks
If UCase(Wb.Name) = M2 Then
If Workbooks(M2).Saved = False Then
bolConfirm = True
msg = MsgBox("Die Mappe " & M2 & " wird geschlossen!" & Space(10) & Chr(10) & _
"Sollen die Änderungen gespeichert werden?", 32 + 4)
If msg = vbYes Then
Workbooks(M2).Close True
Else
Workbooks(M2).Close False
End If
Else
Workbooks(M2).Close False
End If
End If
Next
End If
End Sub

''=================================================================================

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
bolConfirm = False
For Each Wb In Workbooks
If UCase(Wb.Name) = M1 Then
bolOffen = True
Exit For
End If
Next
If Not bolOffen Then
For Each Wb In Workbooks
If UCase(Wb.Name) = M2 Then
MsgBox "Mappe " & M2 & " kann nur geöffnet, wenn auch" & Space(10) & Chr(10) & _
"die Mappe " & M1 & " geöffnet ist!", 64, "weise hin..."
Workbooks(M2).Close False
End If
Next
End If
End Sub

''=================================================================================
Gutes Gelingen, Ulf
Anzeige
AW: verknüpfte Mappe nur in Verbind mit Quelle öffnen
Fritz
Hallo Ulf,
vielen herzlichen Dank für Deine viele Arbeit.
Ich selbst habe nun auch noch - überraschend Besuch bekommen - so dass ich nicht immer Zeit für die Computerei gefunden habe. Ich werde Deinen Vorschlag baldmöglichst ausprobieren und werde mich dann (spätestens im Laufe des morgigen Tages) an dieser Stelle noch einmal melden.
Schönen Gruß
Fritz

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige