Fájl lista beolvasása adatérvényesítési listába
2021-07-14T13:30:16+02:00
2021-07-14T19:56:17+02:00
2022-08-12T03:40:31+02:00
bogdanypeter
Sziasztok!

Azt szeretném megoldani, hogy a lenti kód ne cellákba, hanem egy legördülőlistába tegye be a fájl neveket. Bele tört a bicskám.

Sub LoopThroughFiles() Dim oFSO As Object Dim oFolder As Object Dim oFile As Object Dim i As Integer Set oFSO = CreateObject("Scripting.FileSystemObject") Set oFolder = oFSO.GetFolder(ThisWorkbook.Path & "\Oktatási") For Each oFile In oFolder.Files If (Right(oFile.Name, 5) = ".docx" Or Right(oFile.Name, 4) = ".doc") And Left(oFile.Name, 1) <> "~" Then Cells(i + 1, 2) = ThisWorkbook.Path & "\Oktatási" & oFile.Name Cells(i + 1, 1) = oFile.Name i = i + 1 End If Next oFile End Sub
Mutasd a teljes hozzászólást!

  • Szia!
    Milyen legördülő listára gondolsz?
    Mert ilyen önmagában nem létezik, sem az Excelben, sem a VBA-ban.
    Lehet adatérvényesítésként listát megadni meghatározott cellákra vagy tartományra, ahol direktben felsorolhatók az érvényesítő lista eleme vagy cellatartományt lehet megadni.
    Aztán létrehozhatsz a munkalapon egy listboxot, comboboxot ehhez megadhatsz lista tartományt.
    Esetleg használhatsz Userformot, amire feltehetsz hasonló listaelemeket, amihez tartozik bemeneti tartomány.
    Szóval az esetek nagy részében kell a cellákba beolvasott lista és azt lehet tovább felhasználni.
    DE el kell döntened, milyen módon szeretnéd a listát használni.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia!

    Adatérvényesítési listában szeretném megjeleníteni a fájlok nevét anélkül,hogy előtte cellákba tölteném őket előtte. Tehát nem egy tartomány értékeit hanem pl egy tömb értékeit használná a lista.
    Mutasd a teljes hozzászólást!
  • Szia!
    Ebben az esetben a legegyszerűbb, ha egy szövegváltozóba olvasod be az értékeket, magyar Excel esetén pontosvesszővel, angol esetén vesszővel elválasztva:

    Dim ervszoveg as String For each .... If (Right(oFile.Name, 5) = ".docx" Or Right(oFile.Name, 4) = ".doc") And Left(oFile.Name, 1) <> "~" Then ervszoveg=";" & ThisWorkbook.Path & "\Oktatási" & oFile.Name vagy ervszoveg=";" & oFile.Name Next ervszoveg=Mid(ervszoveg,2) ' hogy a kezdő elválasztójelet levegyük Cella érvényesítés: Range("A1").Validation.Add Type:=xlValidateList, Formula1:=ervszoveg
    Üdv.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd