File Dialog' da Dosya Full Name yerine File Name alma

tamer42

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

Excel de "File Dialog" yolu ile bir dosya seçerek liste kutusuna ekleme yapabiliyoruz, benim burada istediğim "Full Name" yerine sadece "File Name" (Dosya adı) eklemek istiyorum. özetle Dosya yolunu atmak istiyorum

buradaki FileName = fd.SelectedItems(1) kodu üzerinde nasıl bir düzenleme yapmak gerekir?

Kod:
Dim fd As FileDialog
Dim FileName As String
Set fd = Application.FileDialog(msoFileDialogOpen)
fd.InitialFileName = ThisWorkbook.Path
Dim FileChosen As Integer
FileChosen = fd.Show
fd.Title = "Dosya Penceresi"

fd.InitialView = msoFileDialogViewList

fd.Filters.Clear
fd.Filters.Add "Excel Dosyaları", "*.xlsx"

fd.FilterIndex = 1
fd.ButtonName = "Dosyayı Aç"
If FileChosen <> -1 Then
Else

FileName = fd.SelectedItems(1)

ListBox2.AddItem FileName
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,842
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Dir komutunu dene
Kod:
MsgBox Dir(fd.SelectedItems(1))
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,842
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
pek anlamadım ama kırmızı bölüm gibidir herhalde

Rich (BB code):
Private Sub CommandButton2_Click()

Dim objDialog, Msg
Set objDialog = CreateObject("MSComDlg.CommonDialog")
'objDialog.Flags = 4
objDialog.Filter = "Excel Dosyaları (.xlsx)|*.xlsx"
objDialog.FilterIndex = 1
objDialog.InitDir = ThisWorkbook.Path
objDialog.ShowOpen
If Len(objDialog.FileName) <> 0 Then
MsgBox Dir(objDialog.FileName)
Else
Msg = "Dosya seçmediniz."
MsgBox Msg, vbInformation + vbCritical
End If
Set objDialog = Nothing

End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,110
Excel Vers. ve Dili
Office 2013 İngilizce
pek anlamadım ama kırmızı bölüm gibidir herhalde

Rich (BB code):
Private Sub CommandButton2_Click()

Dim objDialog, Msg
Set objDialog = CreateObject("MSComDlg.CommonDialog")
'objDialog.Flags = 4
objDialog.Filter = "Excel Dosyaları (.xlsx)|*.xlsx"
objDialog.FilterIndex = 1
objDialog.InitDir = ThisWorkbook.Path
objDialog.ShowOpen
If Len(objDialog.FileName) <> 0 Then
MsgBox Dir(objDialog.FileName)
Else
Msg = "Dosya seçmediniz."
MsgBox Msg, vbInformation + vbCritical
End If
Set objDialog = Nothing

End Sub
Halit Hocam

fd.SelectedItems(1) satırından sonrası için sormuştum.
pek anlamadım ama kırmızı bölüm gibidir herhalde

Rich (BB code):
Private Sub CommandButton2_Click()

Dim objDialog, Msg
Set objDialog = CreateObject("MSComDlg.CommonDialog")
'objDialog.Flags = 4
objDialog.Filter = "Excel Dosyaları (.xlsx)|*.xlsx"
objDialog.FilterIndex = 1
objDialog.InitDir = ThisWorkbook.Path
objDialog.ShowOpen
If Len(objDialog.FileName) <> 0 Then
MsgBox Dir(objDialog.FileName)
Else
Msg = "Dosya seçmediniz."
MsgBox Msg, vbInformation + vbCritical
End If
Set objDialog = Nothing

End Sub
halit Hocam selamlar,

Dir(fd.SelectedItems(1))
ile dosyanın adını alırken, burada dosya yolunu atıyoruz, bu dosyanın yolunu bulmak istemiştim

aşağıdaki gibi bir çözüm ürettim ama;


Kod:
FName = Dir(fd.SelectedItems(1))

l = Len(FName)
PathName = Left(fd.SelectedItems(1), l - 1)
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,842
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Klasör yolu
Kod:
Private Sub CommandButton1_Click()

Set folder = Application.FileDialog(msoFileDialogFolderPicker)

With folder
.Title = "Klasör Açma Penceresi"
.InitialFileName = ThisWorkbook.Path
.AllowMultiSelect = False
If .Show <> -1 Then GoTo 1
MsgBox .SelectedItems(1)
1
End With

End Sub
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,842
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bunu bir dene

Rich (BB code):
Private Sub CommandButton1_Click()
Dim fd As FileDialog
Dim FileName As String
Set fd = Application.FileDialog(msoFileDialogOpen)
fd.InitialFileName = ThisWorkbook.Path
Dim FileChosen As Integer
FileChosen = fd.Show
fd.Title = "Dosya Penceresi"

fd.InitialView = msoFileDialogViewList
fd.InitialFileName = ThisWorkbook.Path
fd.Filters.Clear
fd.Filters.Add "Excel Dosyaları", "*.xlsx"

fd.FilterIndex = 1
fd.ButtonName = "Dosyayı Aç"
If FileChosen <> -1 Then
Else

MsgBox Dir(fd.SelectedItems(1))
Dim fL As Object
Set fL = CreateObject("Scripting.FileSystemObject")
MsgBox fL.GetParentFolderName(fd.SelectedItems(1))


End If
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,110
Excel Vers. ve Dili
Office 2013 İngilizce
Klasör yolu
Kod:
Private Sub CommandButton1_Click()

Set folder = Application.FileDialog(msoFileDialogFolderPicker)

With folder
.Title = "Klasör Açma Penceresi"
.InitialFileName = ThisWorkbook.Path
.AllowMultiSelect = False
If .Show <> -1 Then GoTo 1
MsgBox .SelectedItems(1)
1
End With

End Sub
Halit Hocam burada klasör seçerken veriyor,
benim aradığım dosya seçimi yaptığımda, ilgili dosyanın yolunu verecek.

teşekkürler, iyi akşamlar.
 

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
Merhabalar,

Excel de "File Dialog" yolu ile bir dosya seçerek liste kutusuna ekleme yapabiliyoruz, benim burada istediğim "Full Name" yerine sadece "File Name" (Dosya adı) eklemek istiyorum. özetle Dosya yolunu atmak istiyorum

buradaki FileName = fd.SelectedItems(1) kodu üzerinde nasıl bir düzenleme yapmak gerekir?

"FileName" değişkenini elde ettikten sonra, basitçe şöyle olabilir;

Kod:
MsgBox Replace(FileName, Dir(FileName), "")
.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosya adı için;

Kod:
FileName = Replace(fd.SelectedItems(1), fd.InitialFileName, "")
Dosya yolu için;

Kod:
FilePath = fd.InitialFileName
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,110
Excel Vers. ve Dili
Office 2013 İngilizce
Dosya adı için;

Kod:
FileName = Replace(fd.SelectedItems(1), fd.InitialFileName, "")
Dosya yolu için;

Kod:
FilePath = fd.InitialFileName
Sn Haluk & Korhan hocam her ikinize de teşekkürler.
sağlıklı günler dilerim.
 
Üst