• DİKKAT

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

Macro ile klasör oluşturmak istiyorum

Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Merhaba arkadaşlar.
Macro ile klasör oluşturmak için yardımlarınıza ihtiyacım var.
Detaylı açıklama ekte sunulmuştur.
 

Ekli dosyalar

Ekli dosyadaki buton ile Kullanıcının masaüstüne klasörler oluşturur. Deneyiniz.
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Alternatif olsun.
Kod:
Public BsKlasor As String

Kod:
Sub KlasorOlustur()

    Dim Klasor1     As String, _
        klasor2     As String, _
        i           As Long
        
    KlasorSec "Necdet"
    BsKlasor = BsKlasor & Application.PathSeparator
    
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        If Not Klasor1 = Cells(i, "B") Then
            Klasor1 = Cells(i, "B")
            MkDir BsKlasor & Klasor1
            klasor2 = ""
        Else
            If Not klasor2 = Cells(i, "C") Then
                klasor2 = Cells(i, "C")
                MkDir BsKlasor & Klasor1 & Application.PathSeparator & klasor2
            End If
        End If
    Next i
    
    MsgBox "İşlem Tamamlanmıştır...."
    
End Sub

Kod:
Sub KlasorSec(Necdet As String)

    Dim fdBrowser As FileDialog

    Set fdBrowser = Application.FileDialog(msoFileDialogFolderPicker)
    
    With fdBrowser
    
        'İlk kullanıma aç
        .Title = "Klasör Seçiniz"
        .InitialFileName = "C:\"
        
        'İletişim Kutusunu Göster
        If .Show Then
            BsKlasor = .SelectedItems(1)
        End If
        
    End With

End Sub
 
Son düzenleme:
Ekli dosyadaki buton ile Kullanıcının masaüstüne klasörler oluşturur. Deneyiniz.
Teşekkür ederim. Kod çalışıyor.
Klasörlerin nerede yaratılması gerektiğini sorup, kullanıcının göstereceği yerde (masa üstü, flash bellek, usb vb) yaratılması şeklinde düzeltme yapılabilirmi?
 
Merhaba,

Alternatif olsun.
Kod:
Public BsKlasor As String

Kod:
Sub KlasorOlustur()

    Dim Klasor1     As String, _
        klasor2     As String, _
        i           As Long
       
    KlasorSec "Necdet"
    BsKlasor = BsKlasor & Application.PathSeparator
   
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        If Not Klasor1 = Cells(i, "B") Then
            Klasor1 = Cells(i, "B")
            MkDir BsKlasor & Klasor1
            klasor2 = ""
        Else
            If Not klasor2 = Cells(i, "C") Then
                klasor2 = Cells(i, "C")
                MkDir BsKlasor & Klasor1 & Application.PathSeparator & klasor2
            End If
        End If
    Next i
   
    MsgBox "İşlem Tamamlanmıştır...."
   
End Sub

Kod:
Sub KlasorSec(Necdet As String)

    Dim fdBrowser As FileDialog

    Set fdBrowser = Application.FileDialog(msoFileDialogFolderPicker)
   
    With fdBrowser
   
        'İlk kullanıma aç
        .Title = "Klasör Seçiniz"
        .InitialFileName = "C:\"
       
        'İletişim Kutusunu Göster
        If .Show Then
            BsKlasor = .SelectedItems(1)
        End If
       
    End With

End Sub
Necdet hocam teşekkür ederim. Sizin kod da çalışıyor. turist arkadaşın mesajına yazdığım gibi sizin kod da yol gösterilmesine rağmen sürekli C sürücüsünde klasörleri yaratıyor.
Sizin kodu da, kullanıcının göstereceği yerde (masa üstü, flash bellek, usb vb) yaratılması şeklinde düzeltme yapılabilirmi?
 
Necdet hocam teşekkür ederim. Sizin kod da çalışıyor. turist arkadaşın mesajına yazdığım gibi sizin kod da yol gösterilmesine rağmen sürekli C sürücüsünde klasörleri yaratıyor.
Sizin kodu da, kullanıcının göstereceği yerde (masa üstü, flash bellek, usb vb) yaratılması şeklinde düzeltme yapılabilirmi?

Ben de sizin dediğiniz gibi yaptım zaten. Siz belirliyorsunuz.
 
Ben de sizin dediğiniz gibi yaptım zaten. Siz belirliyorsunuz.
Evet hocam klasörü nerede oluşturulacağını soruyor ancak gösterilen yerde kayıt oluşmuyor. Sürekli olarak C sürücüsünde oluşuyor klasörler.
Aşağıdaki kodu sanırım yanlış yere yazmış olabilirim.
Bu çalışma kitabı denen yere yazdım.
Diğer kodlarda bir modülün içine koyup butona atadım.

Kod:
Public BsKlasor As String
 
Küçük bir düzenleme mümkün olurmu?
İlk satırda S.NO, İLÇESİ, BİRİMİ gibi başlıkların olduğunu düşünürsek klasör oluştururken 2.satırdan itibaren işlem yapsın.
 

Ekli dosyalar

Verdiğim kodlarda for döngüsünü 1 den değil 2 den başlatın olsun bitsin.
 
Necdet hocam mazur görürseniz yazdığınız kodla ilgili bir düzeltme, birde ilave talebim olacak.
Birincisi: Macroyu çalıştırınca klasörlerin oluşturulması istenen yeri soran diyalog penceresi geliyor. Bu sırada işlemden vaz geçme anlamında iptal edersek işlem sonlanmadan C dizininde klasörler açılmış oluyor. Bu esnada klasörler açılmadan işlem sonlanmalı.
İkincisi: Mevcut macrodan bağımsız olarak, klasör oluşturma işlemini grup bazında olacak şekilde revize edebilirmiyiz?
Yani klasörler Grup>İlçe>Birim şeklinde oluşturulmalı.
 

Ekli dosyalar

Merhaba,
Ekteki dosyayı inceler misiniz? Sanırım işinizi çözecektir.
A-ÜLKE
B-ŞEHİR​
C-GRUP​
D-İLÇE​
E-BİRİM​

Şeklinde alt klasörleri oluşturabiliyorsunuz. Bi kaç denemeden sonra mantığını daha iyi anlarsınız.
Kolay gelsin...
 

Ekli dosyalar

Merhaba,
Ekteki dosyayı inceler misiniz? Sanırım işinizi çözecektir.
A-ÜLKE
B-ŞEHİR​
C-GRUP​
D-İLÇE​
E-BİRİM​

Şeklinde alt klasörleri oluşturabiliyorsunuz. Bi kaç denemeden sonra mantığını daha iyi anlarsınız.
Kolay gelsin...
Teşekkür ederim arkadaşım.
 
Geri
Üst