Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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
Inhaltsverzeichnis

Prüfen ob Datei bereits geöffnet

Prüfen ob Datei bereits geöffnet
25.02.2016 14:08:43
Nicolai
Hallo zusammen,
ich hatte hier vor kurzem von ChrisL diesen Code bekommen, leider war der Thread nicht mehr offen, aber ich hatte nun noch eine Frage:
Hier der Link zum Archiv-Thread:
https://www.herber.de/forum/archiv/1468to1472/t1470348.htm

Sub t()
Dim WB1 As Workbook, WB2 As Workbook
Dim varDatei As Variant
Application.ScreenUpdating = False
Set WB1 = ThisWorkbook
ChDrive "T:"
ChDir "T:\~Betrieb_Waghäusel\~Kommissionierung\~GL Kommissionierung\Allgemein\ _
Parametereinstellungen\"
varDatei = Application.GetOpenFilename("Excel Datei (*.xlsm), *.xlsm", , "Datei auswählen", ,  _
False)
If varDatei  False Then
Set WB2 = Workbooks.Open(varDatei)
Else
Exit Sub
End If
End If
WB2.Worksheets(2).Range("M2:S43").Copy WB1.Worksheets(2).Range("M2")
WB2.Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub
In diesem Code habe ich zwei Zeilen eingefügt die mir bereits den Pfad vorgeben:

ChDrive "T:"
ChDir "T:\~Betrieb_Waghäusel\~Kommissionierung\~GL Kommissionierung\Allgemein\ _
Parametereinstellungen\"
Ich möchte allerdings nun noch abfangen, ob die Datei die ich ausgewählt habe bereits geöffnet ist, sodass keine Fehlermeldung kommt beim ausführen.
Vielen Dank & Grüße,
Nicolai

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Datei bereits geöffnet
25.02.2016 15:39:16
Luschi
Hallo Nicolai,
so sollte es auch bei Dir klappen:

Dim WB2 As Workbook
Dim i As Integer, nurDatei As String
varDatei = Application.GetOpenFilename("Excel Datei (*.xlsm), *.xlsm", , _
"Datei auswählen", , False)
If varDatei  False Then
'Position letztes '\' im Pfad+Dateiname ermitteln
i = InStrRev(varDatei, "\", -1, vbTextCompare)
'nur den Dateinames rausfiltern
nurDatei = Mid(varDatei, i + 1)
On Error Resume Next
'Testöffnung
Set WB2 = Workbooks(nurDatei)
On Error GoTo 0
If WB2 Is Nothing Then
Set WB2 = Workbooks.Open(varDatei)
Else
MsgBox "AM '" & nurDatei & "' ist schön geöffnet!", vbSystemModal + 48, "Hinweis..."
End If
Else
Exit Sub
End If

Anzeige
AW: Prüfen ob Datei bereits geöffnet
25.02.2016 15:48:50
Nicolai
Hallo Luschi,
vielen Dank für deine schnelle Rückmeldung.
Es hat funktioniert.
Mein Code sieht nun wie folgt aus:

Sub t()
Dim WB1 As Workbook, WB2 As Workbook
Dim varDatei As Variant
Dim i As Integer, nurDatei As String
Application.ScreenUpdating = False
Set WB1 = ThisWorkbook
ChDrive "T:"
ChDir "T:\~Betrieb_Waghäusel\~Kommissionierung\~GL Kommissionierung\Allgemein\ _
Parametereinstellungen\"
varDatei = Application.GetOpenFilename("Excel Datei (*.xlsm), *.xlsm", , "Datei auswählen", ,  _
False)
'If varDatei  False Then
'    Set WB2 = Workbooks.Open(varDatei)
'Else
'    Exit Sub
'End If
If varDatei  False Then
'Position letztes '\' im Pfad+Dateiname ermitteln
i = InStrRev(varDatei, "\", -1, vbTextCompare)
'nur den Dateinames rausfiltern
nurDatei = Mid(varDatei, i + 1)
On Error Resume Next
'Testöffnung
Set WB2 = Workbooks(nurDatei)
On Error GoTo 0
If WB2 Is Nothing Then
Set WB2 = Workbooks.Open(varDatei)
Else
MsgBox "AM '" & nurDatei & "' ist schön geöffnet!", vbSystemModal + 48, "Hinweis..."
End If
Else
Exit Sub
End If
WB2.Worksheets(2).Range("M2:S43").Copy WB1.Worksheets(2).Range("M2")
WB2.Close SaveChanges:=False
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Prüfen ob Datei bereits geöffnet
25.02.2016 16:08:22
Luschi
Hallo Nicolai,
Objektvariablen sollte man vor Beenden der Prozedur wieder ins Nirvana Schicken; also:
Set WB1 = Nothing
Set WB2 = Nothing
Application.ScreenUpdating = True

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige