Dosya adını BrowseForFolder ile almak

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,102
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

Aşağıdaki kodla; BrowseForFolder yöntemiyle istediğimiz klasör adını kolaylıkla seçebiliryoruz.

Kod:
Sub Test2()

Set ObjFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasor seçin !", &H100)
If Not ObjFolder Is Nothing Then
MyPath = ObjFolder.Items.Item.Path
End If

MsgBox MyPath

End Sub
Bunun bir benzeri BrowseForFile var mıdır?
yani açılan pencereden seçtiğimiz dosyanın adını belirleyebilirmiyiz?

İyi Çalışmalar.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kod:
Sub Test()
    Dim ObjFolder As Object
    Dim MyPath As String, MyFile As String
    Set ObjFolder = CreateObject("Shell.Application").BrowseForFolder _
                    (0, "Klasör seçin...", &H4000, "C:\Program Files")
    If Not TypeName(ObjFolder) = "Nothing" Then
    MyPath = ObjFolder.Items.Item.Path
    MyFile = ObjFolder.Items.Item.Name
    End If
    Set ObjFolder = Nothing
    MsgBox "Dosya / Klasör yolu: " & MyPath & vbCrLf & vbCrLf & _
           "Dosya / Klasör adı : " & MyFile
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,102
Excel Vers. ve Dili
Office 2013 İngilizce
Sn Haluk İlginize teşekkürler..

Yalnız bu kodları çalıştırdığımda ekteki hata mesajını veriyor.

Bu hata neden kaynaklanabilir?

İyi Çalışmalar.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sn Haluk İlginize teşekkürler..

Yalnız bu kodları çalıştırdığımda ekteki hata mesajını veriyor.

Bu hata neden kaynaklanabilir?

İyi Çalışmalar.
Haluk hocam teşekkürler.Çok güzel.
Yalnız ayni hatayı bende aldım.
Bir dosya seçince tamama basınca hata veriyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Kullanılan işletim sisteminden kaynaklanıyor olabilir.

Benim işletim sistemim Win2000 Prof.

.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,102
Excel Vers. ve Dili
Office 2013 İngilizce
Benim ki:
Win xp burada çalışmaz mI?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,477
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Yöntem çok olabilir, bir örnekte ben vereyim.

Kod:
Sub DosyaAdiGetir()
On Error Resume Next
Dim i As Integer
'With Application.FileDialog(msoFileDialogFolderPicker) '---Dizin Gösterir
 With Application.FileDialog(msoFileDialogOpen)         '---Dosyaları Gösterir
    .AllowMultiSelect = False
    .Show
    i = Application.WorksheetFunction.Find("\", StrReverse(.SelectedItems(1)))
    If i = 0 Then Exit Sub
    MsgBox "Dosya Yolu : " & Left(.SelectedItems(1), Len(.SelectedItems(1)) - i + 1)
    MsgBox "Dosya : " & Right(.SelectedItems(1), i - 1)
    End With
End Sub
 
Üst