• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Comboboxta, commandbutton ile klsör açmak

  • Konbuyu başlatan Konbuyu başlatan jinken
  • Başlangıç tarihi Başlangıç tarihi

jinken

Altın Üye
Katılım
26 Eylül 2010
Mesajlar
141
Excel Vers. ve Dili
Office 365
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
 
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
 
Çok teşekkür ederim elleriniz dert görmesin.
comboboxta birden fazla klasör eklenebilir mi?
 
"C:\Users\ucary\OneDrive\Desktop" ta bulunan klasörleri ve alt klasörlerini zaten listeleyecektir.
 
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
 
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:
Teşekkür ederim.
 
Geri
Üst