Comboboxta, commandbutton ile klsör açmak

jinken

Altın Üye
Katılım
26 Eylül 2010
Mesajlar
121
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
25-09-2029
Merhaba,
comboboxta seçim yaparak seçtiğim ada göre klasörün commandbutton ile açılmasını istiyorum.
comboboxta gözükmesini istediğim klasörler aşağıdaki gibidir. Comboboxta seçim yaparak, commandbutton ile klasörün açılması gerekiyor.
Yardımlarınız için şimdiden teşekkür ederim.

‪C:\Users\ucary\OneDrive\Desktop\deneme
C:\Users\ucary\OneDrive\Desktop\çalışma
C:\Users\ucary\OneDrive\Desktop\çalışma\doruk
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba

Kod:
Private Sub CommandButton1_Click()
If ComboBox1.Value <> "" Then _
aç = Shell("C:\WINDOWS\Explorer.exe " & ComboBox1.Value, vbNormalFocus)
End Sub
Eğer "Combobox" userform üzerinde ise kodları
"Sub klasor_list()"
yerine
"Private Sub UserForm_Initialize()" başlığı altına yazıp deneyiniz

Kod:
Sub klasor_list()
Set a = CreateObject("scripting.filesystemobject")
Set dic = CreateObject("scripting.dictionary")
dic.CompareMode = vbBinaryCompare
n = 1
dic.Add n, "C:\Users\ucary\OneDrive\Desktop"
geri:
h = dic.Count
On Error Resume Next
For j = n To h
Set klasor = a.GetFolder(dic(j))
If klasor.Subfolders.Count > 0 Then
For Each alt In klasor.Subfolders
If alt <> "" Then _
dic.Add dic.Count + 1, alt
Next: End If: Next
If h < dic.Count Then
n = h + 1: Set klasor = Nothing:
GoTo geri: End If
ComboBox1.List = Application.Transpose(dic.Items)
End Sub
 

jinken

Altın Üye
Katılım
26 Eylül 2010
Mesajlar
121
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
25-09-2029
Çok teşekkür ederim elleriniz dert görmesin.
comboboxta birden fazla klasör eklenebilir mi?
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
"C:\Users\ucary\OneDrive\Desktop" ta bulunan klasörleri ve alt klasörlerini zaten listeleyecektir.
 

jinken

Altın Üye
Katılım
26 Eylül 2010
Mesajlar
121
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
25-09-2029
Gösteriyor fakat, tam olarak istediğim bu değil D: sürücüsündeki yada başka bir klasör yolu daha eklemek istiyorum.

C:\Users\ucary\OneDrive\Desktop
D:\Jinken
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Aşağıda iki değişik kod var:

Bu kodla klasör seçerek;

Kod:
Sub klasor_list()
Set a = CreateObject("scripting.filesystemobject")
ComboBox1.Clear: ComboBox1.Value = ""
10:
n = ComboBox1.ListCount
Set klasorsec = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin !", &H100)
If klasorsec Is Nothing Then MsgBox "Klasör seçilmedi": Exit Sub
ComboBox1.AddItem klasorsec.Items.Item.Path
geri:
h = ComboBox1.ListCount
'On Error Resume Next
For j = n To h - 1
Set klasor = a.GetFolder(ComboBox1.List(j))
If klasor.Subfolders.Count > 0 Then
For Each alt In klasor.Subfolders
If alt <> "" Then _
ComboBox1.AddItem alt
Next: End If: Next
If h < ComboBox1.ListCount Then
n = h: Set klasor = Nothing:
GoTo geri: End If
sor = MsgBox("Başka Klasör seçmek istermisiniz?", vbYesNo)
If sor = vbYes Then GoTo 10
End Sub


Aşağıdaki kodlarlada yol listesini (tırnak ve virgül koyarak) makronun içerisinde çoğaltabilirsiniz.
yol = Array("C:\Users\ucary\OneDrive\Desktop", "D:\Jinken")

Kod:
Sub klasor_list2()
Set a = CreateObject("scripting.filesystemobject")
ComboBox1.Clear: ComboBox1.Value = ""
yol = Array("C:\Users\ucary\OneDrive\Desktop", "D:\Jinken")
For t = 0 To UBound(yol)
n = 0
ComboBox1.AddItem yol(t)
geri:
h = ComboBox1.ListCount
'On Error Resume Next
For j = n To h - 1
Set klasor = a.GetFolder(ComboBox1.List(j))
If klasor.Subfolders.Count > 0 Then
For Each alt In klasor.Subfolders
ComboBox1.AddItem alt
Next: End If: Next
If h < ComboBox1.ListCount Then
n = h: Set klasor = Nothing:
GoTo geri: End If
Next
End Sub
 
Son düzenleme:

jinken

Altın Üye
Katılım
26 Eylül 2010
Mesajlar
121
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
25-09-2029
Teşekkür ederim.
 
Üst