< návrat zpět

MS Excel


Téma: existence souboru rss

Zaslal/a 6.5.2010 22:04

Prosím o radu.
Potrebuji pomocí VBA ověřit, zda v určité složce existuje určitý soubor. Pokud ano, tak ho spustit v příslušné aplikaci (v mém případě DWG v AutoCadu), pokud je aplikace (AutoCad)již spuštena, tak soubor v této aplikaci zobrazit a znovu ji nezpouštět. Pokud soubor ve složce není, tak tuto složku otevřít v průzkumníku.

Děkuji.

Zaslat odpověď >

icon #001624
Poki
Zdravim,
ten ten existence souboru je v poradku, ale tim otevrenim dokumentu si nejsem jisty...
Sub jeOPEN()

Dim fso
Dim Soubor As String
Dim Cesta As String
Dim DwgName As String
DwgName = Cesta & Soubor

Soubor = "jmeno.dwg"
Cesta = "d:\"

Set fso = CreateObject("scripting.filesystemobject")

If Not fso.FileExists(DwgName) Then
MsgBox Soubor & " nebyl nalezen.", vbInformation, "Soubor nenalezen"
Exit Sub
End If

Set acadApp = GetObject(, "AutoCAD.Application")

If Err Then
Set acadApp = CreateObject("AutoCAD.Application")
Err.Clear
End If

Set aCadDoc = acadApp.activedocument
If aCadDoc.FullName <> DwgName Then
aCadDoc.Open DwgName
End If

End Sub
citovat
#001625
Jeza.m
Zkusím přidat ještě jeden příklad:
Public Sub spustit()
Dim soubor As String
soubor = "D:\CPR.mdb"

If Dir(soubor) <> "" Then
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run (soubor)
Else
MsgBox "Soubor nenalezen", vbCritical, "Chyba"
End If
End Sub

jinak třeba se bude hodit:
http://www.david-zbiral.cz/vb.htm
S pozdravem
M@citovat
#001627
avatar
Díky za rady. Bohužel na PC, kde to potřebuji způsobuje řádek Set fso = CreateObject("scripting.filesystemobject") chybové hlášení Run-time error '429': AxtiveX component can't create object. Na jiném PC to nedelá. Nevíte někdo, co by mohlo být špatně. Kontroloval jsem references a tam je vše stejné.
Použil jsem radu od Jeza.m a to funguje.
Jen bych ještě potřebal variantu, když není AutoCad spuštěn, tak jeho otevření.
Díky.citovat
#001628
avatar
Tak jsem to zkusil i na jiném PC. Kontrola na existenci souboru funguje v obou případech.
Otevření souboru v AutoCadu dle kodu od Pokiho bohužel nefunguje.
Ještě jsem narazil na jeden způsob otevření souboru, který funguje. Do modulu se vloží:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

a pro oteření se použije-

ShellExecute Application.hwnd, "open", DwgName, vbNullString, vbNullString, 0

Ještě bych uvítal radu dle výše uvedeného dotazu.
Díkycitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

odpocet a storno tl.

PavDD • 28.3. 8:53

odpocet a storno tl.

Začátečník • 26.3. 14:39

odpocet a storno tl.

PavDD • 26.3. 10:22

odpocet a storno tl.

elninoslov • 26.3. 7:50

odpocet a storno tl.

PavDD • 26.3. 7:26

odpocet a storno tl.

elninoslov • 25.3. 22:34

odpocet a storno tl.

Začátečník • 25.3. 15:09