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

ATEMİ

Altın Üye
Katılım
9 Ocak 2006
Mesajlar
394
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
25-06-2026
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
 

wezyr

Altın Üye
Katılım
14 Nisan 2006
Mesajlar
118
Excel Vers. ve Dili
OFFİCE 2010-2019
Altın Üyelik Bitiş Tarihi
21-04-2029
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
 

ATEMİ

Altın Üye
Katılım
9 Ocak 2006
Mesajlar
394
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
25-06-2026
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
 
Üst