Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[vba] excel otwarty skoroszyt

351 views
Skip to first unread message

sw

unread,
Aug 11, 2005, 11:45:50 AM8/11/05
to
Witam

Jest otwarty jakis skoroszyt np. test.xls. Chciałbym za pomocą VBA sprawdzić
czy plik test.xls jest otwarty(małe przypomnienie :) nie otworzymy dwóch
plików xls o tych samych nazwach, choćby były by w różnych katalogach).

Narazie znalazłem dwa sposoby
1. przelatywać po kolekcji workbooks i porównywać z nazwami otwartych
skoroszytów

2.obsługiwać błąd przy próbie otwarcia pliku

Czy mozna jakoś krócej np.

workbooks("test.xls") i sprawdzać jakąś właściwość(tylko jaką)


Scalak

unread,
Aug 11, 2005, 2:22:20 PM8/11/05
to

sw napisał(a):

3. Skorzystać z API i przeszukać nazwy otwartych okien np:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Dim hwnd As Long
hwnd = FindWindow(vbNullString, "Microsoft Excel - rozliczenie")
If hwnd <> 0 Then MsgBox "Zamknij plik r.xls!"


Pozdrawiam
Scalak

stani...@op.pl

unread,
Aug 12, 2005, 3:02:15 PM8/12/05
to
Zapuść w Excelu procedurę:

Sub Czy_otwarty()

Dim skor As Workbook
Const szukany As String = "test.xls"


For Each skor In Workbooks
If skor.Name = szukany Then
MsgBox "Skoroszyt '" & szukany & "' JEST otwarty.",
vbExclamation
Exit Sub
End If
Next skor

MsgBox "Skoroszyt '" & szukany & "' nie jest otwarty.", vbInformation

End Sub

__________
Stanislaw

pxd74

unread,
Aug 17, 2005, 6:20:57 AM8/17/05
to
Innym sposobem, który może Ciebie zadowolić jest stworzenie nowej instancji
Excela i w nim otwarcie skoroszytu - wtedy możesz mieć otwartych kilka
skoroszytów o tej samej nazwie jednocześnie na tym samym komputerze.


--
Pozdrowienia
pxd74

0 new messages