Thema Datum  Von Nutzer Rating
Antwort
06.08.2007 11:32:16 neumi
NotSolved
06.08.2007 11:46:34 neumi
NotSolved
Rot Aw:Aw:Prüfen ob Excel Datei geöffnet ist
06.08.2007 14:08:49 canner
NotSolved
07.08.2007 11:26:48 neumi
NotSolved
07.08.2007 10:05:51 Sozu
NotSolved

Ansicht des Beitrags:
Von:
canner
Datum:
06.08.2007 14:08:49
Views:
1764
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Prüfen ob Excel Datei geöffnet ist
hallo neumi,

ich habe das problem bei mir so gelöst^^

'pfad ist dateipfad mit dateityp zB .xls
'oexcel ist eine Excel.Application ' Dim oexcel as Excel.Application ' set oexcel = new Excel.Application

If ausführen(pfad, oexcel) = False Then
Exit Sub
End If

// Aufruf ausführen()

Function ausführen(pfad As String, oexcel As Excel.Application) As Boolean
Dim fn As String
Dim lastentry As Integer
Dim benutzer As String
fn = pfad
Const msg = "Warte auf Zugiffsmöglicheit"

If DateiInBearbeitung(fn) = True Then 'Aufruf weiter unten
While DateiInBearbeitung(fn) ' = true
oexcel.Workbooks.Open fn, False, True
lastentry = oexcel.Cells(Rows.count, 100).End(xlUp).Row ' sucht in datei gespeicherten letzten benutzer heraus
If lastentry = 1 Then
a = MsgBox(msg & ". Die Datei " & pfad & " ist gerade in Bearbeitung. Klicken Sie auf 'OK' um es erneut zu versuchen.", vbOKCancel + vbCritical, "Meldung")
Else
benutzer = oexcel.Cells(lastentry - 1, 100)
a = MsgBox(msg & ". Die Datei " & pfad & " ist gerade von " & benutzer & " in Bearbeitung. Klicken Sie auf 'OK' um es erneut zu versuchen.", vbOKCancel + vbCritical, "Meldung")
End If
oexcel.ActiveWorkbook.Close False
If a = vbCancel Then
ausführen = False
Exit Function
Else
oexcel.Application.Wait Now + TimeValue("00:00:02") '2 sec warten
End If
Wend
If DateiInBearbeitung(fn) = False Then
a = MsgBox("Datei ist frei und kann geöffnet werden!", vbOKCancel + vbInformation, "Meldung")
If a = vbCancel Then
ausführen = False
Exit Function
Else
oexcel.Workbooks.Open FileName:=fn, UpdateLinks:=True, readOnly:=False
ausführen = True
End If
End If
Else
oexcel.Workbooks.Open FileName:=fn, UpdateLinks:=True, readOnly:=False
ausführen = True
End If
End Function

//

Function DateiInBearbeitung(s As String) As Boolean
Dim ff As Integer
On Error Resume Next
ff = FreeFile
Open s For Binary Access Read Lock Read As ff
Close ff
If Err.Number <> 0 Then
DateiInBearbeitung = True
Err.Clear
End If
End Function


ich hoffe, das klappt so gut wie bei mir!

good luck

gruß canner

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
06.08.2007 11:32:16 neumi
NotSolved
06.08.2007 11:46:34 neumi
NotSolved
Rot Aw:Aw:Prüfen ob Excel Datei geöffnet ist
06.08.2007 14:08:49 canner
NotSolved
07.08.2007 11:26:48 neumi
NotSolved
07.08.2007 10:05:51 Sozu
NotSolved