Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
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

Prüfung ob Datei offen

Prüfung ob Datei offen
26.01.2004 18:37:11
ThomasK
Hallo!
wie würde ein Code für das Prüfen aussehen, ob eine Datei offen ist?
if...... then

Danke!!!
Thomas

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfung ob Datei offen
26.01.2004 18:53:14
Ramses
Hallo
habe ich dir das nicht schon geschrieben ?


'Prüfen ob ein File geöffnet ist
'Privat function TestOpen gehört dazu
Sub TestFileOpen()
    Dim iOpen As Integer
    Dim sFile As String
    sFile = InputBox("Path and Filename:", , "c:\test\test.xls")
    If sFile = "" Then Exit Sub
    iOpen = TestOpen(sFile)
    Select Case iOpen
       Case 0: MsgBox "Datei " & sFile & " ist frei"
       Case 1: MsgBox "Datei " & sFile & " ist geöffnet"
       Case 2: MsgBox "Datei " & sFile & " wurde nicht gefunden"
    End Select
End Sub
Private Function TestOpen(sPath As StringAs Integer
    If Dir(sPath) = "" Then
       TestOpen = 2
    Else
       On Error GoTo errorhandler
       Open sPath For Random Access Read Lock Read Write As #1
       Close #1
    End If
errorhandler:
    If Err = 70 Then TestOpen = 1
End Function

     Code eingefügt mit Syntaxhighlighter 2.5


Gruss Rainer
Anzeige
AW: Prüfung ob Datei offen
26.01.2004 19:00:32
ThomasK
Hallo Ramses,
kann ich mich nicht dran errinnern, ich brauchte den code auch noch nicht bisher....
das ist so ein langer code, so viel.......
hintergrund:
wenn eine spezielle datei offen ist, soll in dieser datei ein makro ausgeführt werden.
wenn die nicht offen ist, zur nächsten prüfung gehen. damit möchte ich ca. 50 dateien prüfen......
ich weiß, ist jetzt blöd zu fragen, aber gibt es dafür nicht einen ganz kurzen code?

dankeschön
Thomas
Kürzer kenn ich es nicht. Tut mir leid. o.T.
26.01.2004 19:02:22
Ramses
...
AW: Prüfung ob Datei offen
26.01.2004 19:06:15
ThomasK
Hallo nochmal!
nachdem ich dein Makro gerade getestet habe, ist mir was aufgefallen:
das ist ja alles völlig unnötig für meinen zweck.......
der deitname muss nicht eingegeben werden, er steht fest in dem code.....
like:
if Workbook("test") is open then
in der art bräuchte ich ein makro......

danke!
Thomas
Anzeige
AW: Prüfung ob Datei offen
26.01.2004 19:10:26
Ramses
Hallo
".... damit möchte ich ca. 50 dateien prüfen........."
Was hindert dich daran den Namen der Datei der Funktion TestOpen zu übergeben
iOpen = TestOpen("C:\Pfad\Deine Datei.xls")
oder anstelle der Variable "sFile" deine Variable zu verwenden.
Gruss Rainer
AW: Prüfung ob Datei offen
26.01.2004 19:12:50
ThomasK
natürlich nichts..... :-)
nur, erscheint ja immer das fenster, zum eingeben des dateipfades und namen. das ist ja unnötig, auch die msg boxen sollen nicht geöffnet werden. wenn eine datei nicht offen ist, soll er zur nächsten gehen.....
Thomas
Soll ich jetzt zaubern ? :-)
26.01.2004 19:15:12
Ramses
Hallo
woher kommen die Namen der Dateien die du prüfen willst.
Gruss Rainer
Anzeige
AW: Soll ich jetzt zaubern ? :-)
26.01.2004 19:22:18
Thomas
Hallo Ramses!
Zaubern kann wohl keiner!! :-)
ich habe es jetzt wie folgt gemacht:

Sub test()
On Error Resume Next
Application.Run ("mappe3.xls!Test")
Application.Run ("mappe.xls!Test")
Application.Run ("mappe4.xls!Test")
End Sub

grüße
Thomas
Was soll das denn... ?
26.01.2004 19:28:35
Ramses
Hallo
Aber wenn es deine Bedürfnisse erfüllt,... dann ist's ja gut.
Gruss Rainer
wieso?
26.01.2004 19:32:31
ThomasK
wenn die bestimmte datei offen ist, wird das makro ausgeführt, wenn sie nicht offen ist, gehts zur nächsten...
sei ehrlich, was ist daran auszusetzen?
Thomas
Deshalb...
26.01.2004 19:39:36
Ramses
Hallo
Deine Frage lautete:
"...wie würde ein Code für das Prüfen aussehen, ob eine Datei offen ist..."
Mit dem Code prüfst du nicht, sondern überdeckst einfach Fehler.
Damit war deine Frage überflüssig.
Da hast du keine Kontrolle darüber was tatsächlich jetzt funktioniert hat und was nicht.
Das Ergebnis deines Codes ist also reiner Zufall.
Na dann viel Spass :-))
Gruss Raienr
Anzeige
den hab ich NICHT
26.01.2004 20:03:07
ThomasK
Hey, brauche doch noch deine Hilfe!!!!
Das klappt zwar, aber nur wenn die Dateien offen sind!!!
wenn sie zu sind, öffnet er diese!!!!!
Mhhhhh, ich sehe das doch zu einfach!!!!!
Gibt es denn eine möglichkeit, das jeweilige makro nur dann auszuführen, wenn die jeweilige datei offen ist?
Bitte um Hilfe!!
Thomas
(hattest ja recht :-) )
brauche noch Hilfe - bitte!
26.01.2004 20:29:53
ThomasK
Eigentlich geht es ja dann darum, eine Makro einer Datei auszuführen, wenn diese offen ist.......
Thomas
brauche noch Hilfe - bitte!
26.01.2004 20:29:54
ThomasK
Eigentlich geht es ja dann darum, eine Makro einer Datei auszuführen, wenn diese offen ist.......
Thomas
AW: brauche noch Hilfe - bitte!
26.01.2004 20:44:12
Nepumuk
Hallo Thomas,
wenn das Makro in allen Mappen Test heißen, dann so:

Option Explicit
Public Sub Makro_ausfuehren()
Dim myWorkbook As Workbook
On Error Resume Next
For Each myWorkbook In Workbooks
If myWorkbook.Name <> ThisWorkbook.Name Then Application.Run myWorkbook.Name & "!Test"
Next
End Sub


Code eingefügt mit: Excel Code Jeanie
On Error deswegen, da du nicht garantieren kannst, dass nicht doch eine Mappe ohne das Makro offen ist.
Gruß
Nepumuk
Anzeige
Ohne On Error... :-))
26.01.2004 21:46:51
Ramses
Hallo Nepumuk
Das sollte auch tun. Trotz Prüfung sauschnell :-)


Sub Workbook_Makro_ausfuehren_Check()
Dim myWorkbook As Workbook
For Each myWorkbook In Application.Workbooks
    If Check_MakroList(myWorkbook.Name, "Sub Test") Then
        MsgBox "Vorhanden"
        'Application.Run myWorkbook.Name & "!Test"
    End If
Next
End Sub
Function Check_MakroList(wb As String, chkCode As StringAs Boolean
Dim vbc As Object, iRow As Integer, iCol As Integer, iCounter As Integer, sMacro As String
Check_MakroList = False
For Each vbc In Workbooks(wb).VBProject.VBComponents
      With vbc.CodeModule
         For iCounter = 1 To .CountOfLines
            If .ProcOfLine(iCounter, 0) > "" Then
               sMacro = .ProcOfLine(iCounter, 0)
               If InStr(1, sMacro, chkCode) > 0 Then
                    Check_MakroList = True
                    Exit Function
               End If
            End If
         Next iCounter
      End With
Next vbc
End Function

     Code eingefügt mit Syntaxhighlighter 2.5


Gruss Rainer
Anzeige
AW: Ohne On Error... :-))
26.01.2004 21:54:17
Nepumuk
Hallo Großväterchen Rainer,
hatte ich auch schon dran gedacht. Ich wollte aber den Level nicht überfordern.
Gruß
Nepumuk
Seit wann schaust du auf den Level .... ; - )
26.01.2004 22:09:42
Ramses
Eure ehrwürdige Eminenz ;-))
...wenn ich den "Datei öffnen" Vorschlag für Maren ansehe ;-)) könnte der Eindruck entstehen, dass die Sehschärfe nachlässt *lol*
Muss wohl an der späten Stunde liegen ;-))
Gruss Rainer
AW: brauche noch Hilfe - bitte!
26.01.2004 22:39:27
ThomasK
Hallo Nepumuk!!!
vielen dank!!!
Aber wenn ich dort ein Makroname eingebe, er kann es nicht finden... obwohl es existiert....
ich hatte eben das gleiche Problem, es fehlten bei dem Workbook namen die '' am anfang und ende........
Thomas
Anzeige
vielleicht so.......
26.01.2004 22:49:46
Jonathan
If myWorkbook.Name <> ThisWorkbook.Name Then Application.Run "'" & myWorkbook.Name & "'" & "!test"

so werden auch die ' angegeben......

Jonathan
AW: vielleicht so.......
26.01.2004 22:52:32
ThomasK
Super, klappt!!!
Danke Jonathan!

Und natürlich vielen Dank an Euch alle!!!!!!!

Thomas
AW: Prüfung ob Datei offen
26.01.2004 20:39:34
Matthias G
Hallo Thomas,
versuch' mal diese Funktion:
Public

Function IsOpen(fn) As Boolean
Dim dummy As String
On Error GoTo NichtOffen
dummy = Workbooks(fn).Name
'kein Fehler, dann offen:
IsOpen = True
Exit Function
NichtOffen:
IsOpen = False
End Function

Viel Erfolg,
Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige