Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
06.08.2007 11:32:16 |
neumi |
|
|
|
06.08.2007 11:46:34 |
neumi |
|
|
Aw:Aw:Prüfen ob Excel Datei geöffnet ist |
06.08.2007 14:08:49 |
canner |
|
|
|
07.08.2007 11:26:48 |
neumi |
|
|
|
07.08.2007 10:05:51 |
Sozu |
|
|
Von:
canner |
Datum:
06.08.2007 14:08:49 |
Views:
1766 |
Rating:
|
Antwort:
|
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 |
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
|
06.08.2007 11:46:34 |
neumi |
|
|
Aw:Aw:Prüfen ob Excel Datei geöffnet ist |
06.08.2007 14:08:49 |
canner |
|
|
|
07.08.2007 11:26:48 |
neumi |
|
|
|
07.08.2007 10:05:51 |
Sozu |
|
|