VBA sorttaus ongelma

Viestiketju alueella 'Ohjelmointi' , aloittaja 0200410, 01.12.2018.

  1. 0200410

    Rekisteröitynyt:
    05.08.2003
    Viestejä:
    43
    Tarvitsisin apua. Alla oleva koodi listaa kivasti tiedostot kansiosta haluamaani solusta alaspäin luettelona.

    Mutta kun on sellainen ongelma että haluaisin että listaus olisi tiedostonimi järjestyksessä niinkuin resurssinhallinnassa.

    Ei rahkeet riitä joten olisiko auttajia?

    Ongelma:
    nimi_01.dwg
    nimi_02.dwg
    nimi_03.dwg
    nimi_04.dwg
    nimi_05.dwg
    nimi_06.dwg
    nimi_07.dwg
    nimi_08.dwg
    nimi_09.dwg
    nimi_10.dwg
    nimi_100.dwg
    nimi_101.dwg
    nimi_102.dwg
    nimi_103.dwg
    nimi_104.dwg
    nimi_105.dwg
    nimi_106.dwg
    nimi_107.dwg
    nimi_108.dwg
    nimi_109.dwg
    nimi_11.dwg
    nimi_110.dwg
    nimi_111.dwg
    nimi_112.dwg
    nimi_113.dwg
    nimi_114.dwg
    nimi_115.dwg
    nimi_116.dwg
    nimi_117.dwg
    nimi_118.dwg
    nimi_119.dwg
    nimi_12.dwg

    Haluttu tulos:
    nimi_01.dwg
    nimi_02.dwg
    nimi_03.dwg
    nimi_04.dwg
    nimi_05.dwg
    nimi_06.dwg
    nimi_07.dwg
    nimi_08.dwg
    nimi_09.dwg
    nimi_10.dwg
    nimi_11.dwg
    nimi_12.dwg
    nimi_100.dwg
    nimi_101.dwg
    nimi_102.dwg
    nimi_103.dwg
    nimi_104.dwg
    nimi_105.dwg
    nimi_106.dwg
    nimi_107.dwg
    nimi_108.dwg
    nimi_109.dwg
    nimi_110.dwg
    nimi_111.dwg
    nimi_112.dwg
    nimi_113.dwg
    nimi_114.dwg
    nimi_115.dwg
    nimi_116.dwg
    nimi_117.dwg
    nimi_118.dwg
    nimi_119.dwg

    Private Sub CommandButton3_Click() 'listaa kansiosta tiedostot

    Dim fldr As Object
    Dim FSO As Object
    Dim FileItem As Object
    Dim r As Long
    Set FSO = CreateObject("Scripting.FileSystemObject")

    Dim sItem As String
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
    .Title = "Select a Folder"
    .AllowMultiSelect = False
    .InitialFileName = Application.DefaultFilePath
    If .Show = -1 Then GoTo NextCode Else Exit Sub
    End With
    NextCode:
    sItem = fldr.SelectedItems(1)
    GetFolder = sItem
    Set fldr = FSO.GetFolder(sItem)

    r = Range("c65536").End(xlUp).Row
    For Each FileItem In fldr.Files

    If InStr(FileItem.Name, ".dwg") > 0 Then 'listaa vain .dwg

    Cells(r, 3).Formula = FileItem.Name 'C1 solusta alaspäin
    r = r + 1 ' next row number

    End If

    Next FileItem

    End sub
     
  2. Photiou

    Rekisteröitynyt:
    23.11.2005
    Viestejä:
    727
    Nuo nimet on 'ongelma'tapauksessa järjestetty aivan oikein merkkijonona, eli helpoimmalla pääset jos vaan onnistuu nimetä kaikki tiedostot esim. kolmella numerolla&etunollilla ('nimi_001.dwg'...'nimi_011.dwg'...).
     

Jaa tämä sivu

Alibi
Anna
Deko
Dome
Erä
Hymy
Kaksplus
Kippari
Kotilääkäri
Kotiliesi
Koululainen
Ruoka.fi
Parnasso
Seura
Suomen Kuvalehti
TM Rakennusmaailma
Tekniikan Maailma
Vauhdin Maailma
Golfpiste
Vene
Nettiauto
Ampparit
Plaza
Muropaketti