• DİKKAT

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

Otomatik klasör oluşturma da sınırlama var

ATEMİ

Altın Üye
Katılım
9 Ocak 2006
Mesajlar
457
Excel Vers. ve Dili
Office 2021 Türkçe
Merhaba Arkadaşlar,
Otomatik klasör oluşturma için kullandığım aşağıdaki kod da 155 adet klasör oluşturması istenirken 46 adet oluşturuyor
önce "path not found" hatası veriyor
imleci ("B" & i) "i" nin üzerine getirdiğimde 46 görünüyor ve tam o kadar klasör oluşturuyor
ne yapmam gerekir yardımcı olursanız sevinirim.


Sub klasorolusturma()
Dim i As Integer
For i = 2 To 155
MkDir "C:\Users\bilgisayar\Desktop\....\...\Klasör Oluşturma\" & Range("B" & i)
Next
End Sub
 
Sadece 46 klasör oluşturuluyorsa:
  • Boş hücreler,
  • Aynı klasör isimleri,
  • Geçersiz karakterler gibi nedenlerden dolayı diğer klasörler atlanıyor olabilir.

chat gpt aşağıdaki şekilde kontrol etmek için kod yazdı. Deneyin bir isterseniz

Sub klasorolusturma_kontrollu()
Dim i As Integer
Dim klasorAdi As String
Dim klasorYolu As String
Dim olusturulanKlasorSayisi As Integer
olusturulanKlasorSayisi = 0

For i = 2 To 155
klasorAdi = Temizle(Range("B" & i).Value)

If klasorAdi = "" Then
Range("H" & i).Value = "Boş klasör adı"
Else
klasorYolu = "C:\Users\bilgisayar\Desktop\....\...\Klasör Oluşturma\" & klasorAdi

If Dir(klasorYolu, vbDirectory) <> "" Then
Range("H" & i).Value = "Zaten var"
Else
On Error Resume Next
MkDir klasorYolu
If Err.Number <> 0 Then
Range("H" & i).Value = "Hata: " & Err.Description
Err.Clear
Else
Range("H" & i).Value = "Oluşturuldu"
olusturulanKlasorSayisi = olusturulanKlasorSayisi + 1
End If
On Error GoTo 0
End If
End If
Next i

MsgBox olusturulanKlasorSayisi & " klasör başarıyla oluşturuldu.", vbInformation
End Sub

Function Temizle(klasorAdi As String) As String
Dim karakterler As Variant
karakterler = Array("\", "/", ":", "*", "?", """", "<", ">", "|")
Dim k As Variant
For Each k In karakterler
klasorAdi = Replace(klasorAdi, k, "_")
Next
Temizle = Trim(klasorAdi)
End Function
 
Sayın wezyr çok teşekkür ederim.
çok faydalı oldu 45. klasörde "/" karakteri olduğu için sonrasını yapmamış düzelttim ve aynı kod üzerinden denedim oldu.
İlginize ve geri dönüş hızınıza tekrar çok teşekkür ederim
 
Geri
Üst