[Yardım]  Dosya isimleri sıralaması

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Dosya isimleri sıralaması

İleti#1)  C_E_M » 17 Kas 2020 12:37

Merhaba,
Dosya isimlerini bir listbox içerisine aşağıdaki gibi alıyorum.

For Each Dosya In CreateObject("Scripting.FileSystemObject").GetFolder(TextBox1 & "\" & ListBox1).Files
ListBox2.AddItem Dosya.Name
Next
Dosya isimleri;
isim_1.jpg
isim_10.jpg
isim_2.jpg
isim_3.jpg
olarak geliyor.

Ben aşağıdaki gibi gelmesini istiyorum. Bir yolu varsa yardımcı olur musunuz. Teşekkürler.
isim_1.jpg
isim_2.jpg
isim_3.jpg
.
isim_10.jpg
Kullanıcı avatarı
C_E_M
Yeni Başlamış
 
Kayıt: 31 May 2018 07:10
Meslek: ÖĞRENCİ
Yaş: 17
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

Cevap: Dosya isimleri sıralaması

İleti#2)  veyselemre » 17 Kas 2020 15:56

Kod: Tümünü seç
    ListBox2.Clear
    ListBox2.ColumnCount = 2
    say = 0
    For Each Dosya In CreateObject("Scripting.FileSystemObject").GetFolder(TextBox1 & "\" & ListBox1).Files
        If Dosya.Name Like "isim*" Then
            ListBox2.AddItem Dosya.Name
            ListBox2.List(say, 1) = Replace(Dosya.Name, "isim_", "")
            say = say + 1
        End If
    Next
    ls = ListBox2.List
    For i = 0 To UBound(ls) - 1
        For ii = i + 1 To UBound(ls)
            If Val(ls(i, 1)) > Val(ls(ii, 1)) Then
                ara = ls(i, 0)
                ls(i, 0) = ls(ii, 0)
                ls(ii, 0) = ara
                ara = ls(i, 1)
                ls(i, 1) = ls(ii, 1)
                ls(ii, 1) = ara
            End If
        Next ii
    Next i
    ListBox2.List = ls
    ListBox2.ColumnCount = 1
Kullanıcı avatarı
veyselemre
Siteye Alışmış
 
Kayıt: 28 Nis 2015 15:53
Meslek: SERBEST
Yaş: 105
İleti: 424
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

Cevap: Dosya isimleri sıralaması

İleti#3)  C_E_M » 19 Kas 2020 18:33

Cevabınız için teşekür ederim.
Bu şekilde değilde acaba isimleri dosya isimlerine göre alabilir miyiz?
Yani ilk döngüde sıralı olarak alma imkanı varmı acaba.
1.jpg den sonra 10.jpg almadan..

1.jpg, 2.jpg,....,9.jpg,10.jpg olarak alınabilir mi?
Kullanıcı avatarı
C_E_M
Yeni Başlamış
 
Kayıt: 31 May 2018 07:10
Meslek: ÖĞRENCİ
Yaş: 17
İleti: 14
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

Cevap: Dosya isimleri sıralaması

İleti#4)  Erkan Akayay » 19 Kas 2020 22:21

Dosya ismi verirken dikkat etmeniz gerekiyor. 1 2 3 gibi numaralar vermemek gerekiyor. Dosya sıralamasında hep çıkan bir sorun. Düzeltmek için uzun kodlar yazmak gerekir. Uzun kod yazmamak için ben biraz yandan dolandım. Ben C:\x kalsöründe test yaptım kodumda. GetFolder("C:\x") kısmını kendinize göre düzenlersiniz. Listbox1 üzerinde çalıştım onuda düzenleyiniz.

Kod: Tümünü seç
Dim dosya_listesi: Set dosya_listesi = CreateObject("System.Collections.ArrayList")
For Each dosya In CreateObject("Scripting.FileSystemObject").GetFolder("C:\x").Files
dosya_listesi.Add Format(Split(Split(dosya.Name, "_")(1), ".")(0), "00000")
Next
dosya_listesi.Sort
For Each sirali In dosya_listesi
ListBox1.AddItem CInt(sirali) & ".jpg"
Next
Sorularınızı düzgün bir Türkçe ile, detay vererek ve örnek dosyayla destekleyerek sorunuz.
Örnek dosyalarınızda Application.Visible veya hide gibi sayfa gizlemelerini iptal ediniz.
Kullanıcı avatarı
Erkan Akayay
Site Dostu
 
Kayıt: 20 Ağu 2008 11:59
Konum: YALOVA
Meslek: Bilgi İşlem
Yaş: 50
İleti: 4131
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 0 misafir

Bumerang - Yazarkafe