< návrat zpět

MS Excel


Téma: FileDialog(msoFileDialogOpen) rss

Zaslal/a 1.5.2015 21:03

dobry vecer,
potrebuji po uzivateli aby otevrel soubor typu *.csv. nastavil jsem promenou Set promena = Application.FileDialog(msoFileDialogOpen).Filters.Add("CSV Files Only", "*.csv"). ale po spusteni se makra se nic nedeje. V cem je problem?

Zaslat odpověď >

#024736
avatar
Co chceš do té proměnné uložit? Jméno souboru?
P.citovat
#024737
elninoslov
Sub OtvorCSV()
With Application.FileDialog(msoFileDialogOpen)
.Filters.Clear
.Filters.Add "CSV Files Only", "*.csv"
If .Show = True Then .Execute Else Exit Sub
End With
End Sub
citovat
#024738
elninoslov
Úprava, keďže nastáva problém s tým, že každá aplikácia môže mať iba jeden msoFileDialogOpen, tak po zatvorení tohto upraveného dialógu, ostáva stále filter CSV. Obnoví sa to až po reštarte aplikácie. Vyriešil som to tak, že som najskôr odložil filtre do poľa, vykonal, a následne z poľa pôvodné filtre obnovil. Je to potrebné preto, ak by sa niekde v aplikácii použil msoFileDialogOpen, kde je potrebný iný/žiadny filter.
Sub OtvorCSV() 'Otvor súbor CSV, obnv pôvodné filtre
Dim dlg As FileDialog, f As Integer, pfs() As String
Set dlg = Application.FileDialog(msoFileDialogOpen)
With dlg
With .Filters
If .Count > 0 Then 'Ak sú pôvodné filtre - uchovaj
ReDim pfs(1 To .Count, 1 To 2)
For f = 1 To .Count
pfs(f, 1) = .Item(f).Description
pfs(f, 2) = .Item(f).Extensions
Next f
End If
End With
.Filters.Clear 'Vymaž filtre
.Filters.Add "CSV Files Only", "*.csv" 'Nastav CSV filter
If .Show = True Then .Execute
Koniec:
With .Filters
.Clear 'Vymaž CSV filter
If Not Not pfs Then 'Ak boli pôvodné filtre - obnov
For f = 1 To UBound(pfs, 1)
.Add pfs(f, 1), pfs(f, 2)
Next f
End If
End With
End With
Set dlg = Nothing
End Sub
citovat
#024740
avatar
Potřebuji to co píše Pavlus, do proměnné přiřadit jméno csv souboru.citovat
#024741
elninoslov
No tak si namiesto
.Execute
daj
NazovSuboru = .SelectedItems(1)citovat
icon #024759
eLCHa
sFileName = Application.GetOpenFilename(FileFilter:="CSV Files (*.csv), *.csv", MultiSelect:=False)
Pokud chcete konkrétní adresář, tak např.: Const MY_DIR As String = "X:\Dir\Dir"
ChDrive MY_DIR: ChDir MY_DIR

Dim sFileName As String
sFileName = Application.GetOpenFilename(FileFilter:="CSV Files (*.csv), *.csv", MultiSelect:=False)

Pokud chcete aplikaci nastavit do původního stavu, tak např.: Const MY_DIR As String = "X:\Dir\Dir"
Dim sCurDir
sCurDir = CurDir
ChDrive MY_DIR: ChDir MY_DIR

Dim sFileName As String
sFileName = Application.GetOpenFilename(FileFilter:="CSV Files (*.csv), *.csv", MultiSelect:=False)

ChDrive sCurDir: ChDir sCurDir
citovat

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

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32

Čas od do

jarek1111 • 18.4. 8:31

Makro smyčka

MilanKop • 18.4. 7:18

Makro smyčka

elninoslov • 18.4. 0:18

Makro smyčka

MilanKop • 17.4. 21:33