Stránka 1 z 1
VBA If
Napsal: 16 črc 2013 09:35
od maraga
Zdravim,
potreboval by som pomoc:
mám makro na ukladanie súboru XX do zložky Archiv:
ThisWorkbook.SaveCopyAs Filename:=(Application.ThisWorkbook.Path & "\Archiv\XX_" & Format(Date, "dd.mm.yyyy") & ".xls")
Potreboval by som podmienku:
Ak je v zložke rovnaký názov vypíš hlášku : Súbor s rovnakým názovom je už uložený
Ďakujem
Re: VBA If
Napsal: 16 črc 2013 11:56
od Azuzula
Ahoj,
na zjištění existence souboru můžeš použít třeba tuhle funkci:
Kód: Vybrat vše
Function File_Exists(ByVal sPathName As String, Optional Directory As Boolean) As Boolean
'funkce na zjištění přítomnosti souboru. Výstup je True/False
'Returns True if the passed sPathName exist
'Otherwise returns False
On Error Resume Next
If sPathName <> "" Then
If IsMissing(Directory) Or Directory = False Then
File_Exists = (Dir$(sPathName) <> "")
Else
File_Exists = (Dir$(sPathName, vbDirectory) <> "")
End If
End If
End Function
A do svého makra potom použiješ toto:
Kód: Vybrat vše
If File_Exists(Application.ThisWorkbook.Path & "\Archiv\XX_" & Format(Date, "dd.mm.yyyy") & ".xls") = True Then
MsgBox "Súbor s rovnakým názovom je už uložený"
End If
Re: VBA If
Napsal: 16 črc 2013 13:14
od maraga
ďakujem veľmi pekne
Re: VBA If
Napsal: 16 črc 2013 13:16
od guest
Metoda FileExists ve VBA existuje sama o sobě, není potřeba tvořit nějakou svou proceduru.
Re: VBA If
Napsal: 16 črc 2013 13:45
od cmuch
Třeba takto
Kód: Vybrat vše
Sub ExistujeSoubor()
Set fso = CreateObject("Scripting.FileSystemObject")
File = ThisWorkbook.Path & "\Archiv\XX_" & Format(Date, "dd.mm.yyyy") & ".xls"
' existuje soubor?
If (fso.FileExists(File)) Then
MsgBox "Soubor existuje !! ", vbInformation
Set fso = Nothing
Else
MsgBox "Soubor nenalezen !! ", vbCritical
Set fso = Nothing
End If
End Sub
Re: VBA If
Napsal: 16 črc 2013 13:49
od Azuzula
Ta funkce bylo to jediný co jsem před pár lety našla, teď když jsem hledala víc konkrétně, tak opravdu existuje i s FileSystemObject. Jen by mě zajímalo proč je ve většině fór jen ta funkce a ne přímo fso když je o tolik jednodušší?
Re: VBA If
Napsal: 16 črc 2013 22:23
od guest
FileExists a FolderExists jsou co já vím součástí FileSystemObjects (FSO) od nepaměti. FSO zná i třeba VBScript, potažmo Windows Script Host (WSH). VBA také práci se soubory směřuje na FSO. Přes API by se to dalo řešit asi funkcemi GetFileAttributes nebo PathFileExists.
Re: VBA If
Napsal: 16 črc 2013 23:52
od X
Pokud si soubor budeš ukládat i s časem (hodina-minuta-sekunda), nic takového nebudeš potřebovat. Případně prozkoumej kód v mém souboru Teorie Rubikovy kostky ... ve vláknu: Teorie Rubikovy kostky + exonixů
>>> viewtopic.php?f=62&t=42122&start=76