[VBA] Datei öffnen, wenn nicht offen - im Hintergrund
#1
Hi,

von Herber habe ich diesen Code:
Code:
Sub MappeOeffnen()
    'Prüft, ob eine Mappe bereits geöffnet ist
    'falls nicht : Prüft, ob Mappe als Datei im angegebenen Ordner existiert
    'und öffnet diese Mappe falls vorhanden
    '12.06.2009, NoNet

    Dim strOrdner As String, strdateiname As String
    Dim wbMappe As Workbook

    strOrdner = "C:\Dein\Ordner\" 'Mit "\" am Ende !
    strdateiname = "Auswertung.xls"

    On Error Resume Next 'Fehlerbehandlung
    Set wbMappe = Workbooks(strdateiname)
    If Not wbMappe Is Nothing Then
        'wbMappe.Activate
        'MsgBox "Mappe ist bereits geöffnet !"
    Else
        'Wenn Mappe noch nicht geöffnet ist
        If Dir(strOrdner & strdateiname) <> "" Then
            'Mappe aus o.g. Ordner öffnen :
            Set wbMappe = Workbooks.Open(strOrdner & strdateiname, UpdateLinks:=False)
        Else
            MsgBox "Folgende Datei existiert nicht : " & vbf & vbLf & _
                strOrdner & strdateiname, vbOKOnly + vbCritical, "Datei nicht gefunden !"
        End If
    End If

    'Speicher für Objektvariable wieder freigeben :
    Set wbMappe = Nothing
End Sub

Damit bekomme ich die Datei geöffnet und in den Vordergrund geholt. Ich möchte sie aber nur als Datenquelle nutzen.
Wie kann ich es nun machen, daß diese Datei dann ausgeblendet, also nicht sichtbar ist?
Top
#2
Hi,

vielleicht so:
Set vbmappe = GetObject(strOrdner & strdateiname)
Gruß Uwe
Top
#3
Hallo Ralf,

die Dateien, die ich nur im Hintergrund geöffnet haben will, lade ich problemlos beim Öffnen
in der Normaldatei und hier in "DieseArbeitsmappe". Dabei bleibt die nachgeladene Datei wie
gewünscht im Hintergrund.

Zitat:    Workbooks.Open Filename:=Left(ThisWorkbook.FullName, 1) & _
                             ":\BETRIEB\9-9001 Testmappe\0_Büro\System\Konten"
Top
#4
Hi Uwe,

ja, so geht es.
Wie kann ich damit die Datei aber auch gleich schreibgeschützt öffnen?
Top
#5
Hi Peter,

bei mir wird dann die zweite Datei geöffnet und ich sehe sie in der Taskleiste, sie wird im Vordergrund angezeigt, ist also aktiviert.
Top
#6
Hallo Ralf,

Zitat:Hi Peter,

bei mir wird dann die zweite Datei geöffnet und ich sehe sie in der Taskleiste, sie wird im Vordergrund angezeigt, ist also aktiviert.

... das ist bei mir nicht der Fall. Momentan kann ich das nicht nachvollziehen.
Ich bastele dran.
Top
#7
(16.11.2018, 13:54)Rabe schrieb: Wie kann ich damit die Datei aber auch gleich schreibgeschützt öffnen?

 Set wbMappe = GetObject(strOrdner & strdateiname)
 wbMappe.Saved = True
 wbMappe.ChangeFileAccess xlReadOnly, , False
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rabe
Top
#8
Hi,

danke, so geht es.

Nun noch bei Workbook_BeforeClose

das
wbMappe.Close savechanges:=False

dann ist es, wie ich will.


Die Datei wurde mit der Option: "Schreibschutzempfehlung" gespeichert und wenn sie jemand anderes schon offen hat, dann klappt es.
Wenn sie aber niemand offen hat, kommt nun trotzdem die Abfrage, ob ich sie schreibgeschützt öffnen will.
Top
#9
Hallo Ralf,

ich habe es mir mal einfach gemacht und die unendlichen Tiefen meiner Festplatten durchforstet.
Versuche es mal damit

Zitat:Sub MappeUnsichtbarMachen()
    Workbooks("SICHTBAR.XLS").Windows(1).Visible = False
End Sub



Sub MappeWiederSichtbarMachen()
    Workbooks("SICHTBAR.XLS").Windows(1).Visible = True
End Sub
Top
#10
(16.11.2018, 15:27)Rabe schrieb: Nun noch bei Workbook_BeforeClose

das
wbMappe.Close savechanges:=False

Du kannst mit
wbMappe.Saved = True
wann immer Du willst Excel vortäuschen, dass die Mappe schon gespeichert ist.

Gruß Uwe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste