Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Datei öffnen in zweiter Instanz

Betrifft: VBA Datei öffnen in zweiter Instanz von: Matthias
Geschrieben am: 03.10.2014 21:36:42

Hallo zusammen
Ich habe ein Script gefunden, das es verbietet, in einer bestehenden Excel-Instanz, eine Datei zu öffnen. Sie öffnet sich in einer zweiten Instanz.
Könnte man dieses Script womöglich vereinfachen?
Dieser "Schreibschutz" verwirrt mich etwas, die Datei wird nämlich zuerst schreibgeschützt geöffnet und dann wieder schreibfähig. Ich möchte nicht, dass während dem "Öffnen-Vorgang" Dateien irgendwie gespeichert werden :)
Danke für eure Hilfe und liebe Grüsse
Matthias

Private WithEvents oAppEvents As Application

Private oWb As Workbook

Private Sub Workbook_Open()
 
    Dim oNewApp As New Application
 
    If Application.Workbooks.Count > 1 Then
        Me.ChangeFileAccess xlReadOnly
        oNewApp.Workbooks.Open Me.FullName
        oNewApp.Visible = True
        Me.Close False
    End If
 
    Set oAppEvents = Application
 
End Sub

Private Sub oAppEvents_NewWorkbook(ByVal Wb As Workbook)
 
    Dim oNewApp As New Application
    Wb.Close False
    oNewApp.Workbooks.Add
    oNewApp.Visible = True
 
End Sub

Private Sub oAppEvents_WorkbookOpen(ByVal Wb As Workbook)
 
    If Wb Is Me Then Exit Sub
    Set oWb = Wb
    oWb.ChangeFileAccess xlReadOnly
    Application.OnTime Now, Me.CodeName & ".CloseWB"
 
End Sub

Private Sub CloseWB()
 
    Dim oNewApp As New Application
 
    oNewApp.Workbooks.Open oWb.FullName
    oNewApp.Visible = True
    oWb.Close False
 
End Sub

  

Betrifft: AW: VBA Datei öffnen in zweiter Instanz von: Luschi
Geschrieben am: 04.10.2014 04:52:14

Hallo Matthias,

poste doch mal die Quelle dieses Vba-Codes. Mit diesen Teilsegmenten kann man das nicht nachbauen den es wird keine Wirkung erzielt, weil:
- oAppEvents_WorkbookOpen ist keine normale Ereignis-Routine
- muß in einem Klassenmodul oder AddIn stehen
- es fehlt die passende WithEvents-Definition dazu

Gruß von Luschi
aus klein-Paris


  

Betrifft: 'With Events' ist doch da, ... von: Luc:-?
Geschrieben am: 04.10.2014 06:56:30

…Luschi,
steht oben drüber (weil nicht mit Tags markiert von ForumsAutomatik nicht miterfasst).
Halte das übrigens für ein ganz normales Klassenmodul der Application, deren Ereignisse standardmäßig bereits festgelegt sind. Es muss also nur das Klassenmodul angelegt und die 3(?) letzten Prozeduren darin notiert wdn (das Vorstehende in das DokKlassenmodul der Mappe).
Morrn, Luc :-?


  

Betrifft: AW: 'With Events' ist doch da, ... von: Luschi
Geschrieben am: 04.10.2014 10:37:22

Hallo Luc,

hast recht, war ein bischen früh heute- aber der Rest past einfach nicht zusammen:
- keine Erwähnung von einem Klassenmodul
- kein Hinweis auf die Quelle der Infos
- & schon gar kein Demo-Beispiel, wie es die fleißigen Helferlein lieben.

Gruß von Luschi
aus klein-Paris



  

Betrifft: Na, da hat er wohl einfach nur die Pgmm ... von: Luc:-?
Geschrieben am: 04.10.2014 14:19:38

…kopiert und nicht auch die sicher ursprüngl vorhandene Erläuterung, Luschi,
was mich bei seinem VBA-Level auch nicht verwundert, denn bei dem sind doch „alle (VBA-)Katzen (noch) grau“… ;-]
Gruß → Leibsch + schöWE, Luc :-?


  

Betrifft: AW: VBA Datei öffnen in zweiter Instanz von: Matthias
Geschrieben am: 04.10.2014 19:35:56

Hallo zusammen

Hätte ich bisher etwas verstehen müssen? :)

Der Code stammt von hier: http://www.mrexcel.com/forum/excel-questions/483382-dont-allow-another-workbook-open-instance.html

Und wenn ich den Code in ein WB einfüge, klappt es schon. D.h. jede weitere Datei die ich öffne, öffnet sich in einer zweiten Excelinstanz. Aber ich verstehe nicht genau was mit dem Speichern/Read Only passiert und das wäre mir schon etwas angenehmer.

Liebe Grüsse
Matthias


  

Betrifft: AW: VBA Datei öffnen in zweiter Instanz von: Matthias
Geschrieben am: 05.10.2014 15:53:56

Thema nicht mehr relevant ....


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Datei öffnen in zweiter Instanz"