Avatar billede spoi Nybegynder
20. april 2007 - 06:21 Der er 8 kommentarer og
2 løsninger

sammlingne filer i liste med filer i mappe

Hej har lige en 2-3 spm men deler dem ud og gover point for hver enkelt

Hvis jeg har en liste med en masse kundenumre i B4 og nedad - til de rikke står mere i kolonnen.

I en mappe ligger der så en masse filer xxxx.xls

Jeg vil gerne sammenligne hvad der er i listen med hvad der er i mappen og have en msgbox om hvor der er afvigelser(dvs kundenumre).

Det vigtigste er hvis der er flere i mappen end i listen og hvilke kundenumre det så er og omvendt, hvis der er flere i listen. Men det vigtigste er hvis der er flest i mappen.


Nogen der vil hjælpe med dette?
LN
Avatar billede spoi Nybegynder
20. april 2007 - 06:21 #1
ups xxxx=kundenummer

LN
Avatar billede excelent Ekspert
21. april 2007 - 09:48 #2
Prøv denn tilrettede kodestump ra nettet
OBS ret Sti og område hvor liste er *** 2 linier 

Function CreateFileList(FileFilter As String, _
    IncludeSubFolder As Boolean) As Variant
Dim FileList() As String, FileCount As Long, Sti
    CreateFileList = ""
    Erase FileList
    Sti = "C:\Users\pm\Desktop\" ' *** Ret Sti
    If FileFilter = "" Then FileFilter = "*.xls"
    With Application.FileSearch
        .NewSearch
        .LookIn = Sti
        .FileName = FileFilter
        .SearchSubFolders = False
        .FileType = msoFileTypeExcelWorkbooks
        If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) = 0 Then Exit Function
        ReDim FileList(.FoundFiles.Count)
        For FileCount = 1 To .FoundFiles.Count
            FileList(FileCount) = Application.WorksheetFunction.Substitute(.FoundFiles(FileCount), Sti, "")
        Next FileCount
        .FileType = msoFileTypeExcelWorkbooks
    End With
    CreateFileList = FileList
    Erase FileList
End Function

Sub TestCreateFileList()
Dim FileNamesList As Variant, i As Integer
    FileNamesList = CreateFileList("*.xls", False)
    On Error GoTo noMatch
    For i = 1 To UBound(FileNamesList)
        x = Range("A1:A1000").Find(FileNamesList(i), LookIn:=xlValues).Row '*** Ret Range til hvor liste er
    Next i
GoTo ud
noMatch:
MsgBox ("Filen >> ") & Sti & FileNamesList(i) & " << Findes ikke i din liste"
Resume Next
ud:
End Sub
Avatar billede spoi Nybegynder
23. april 2007 - 07:14 #3
koden skal egentlig helst ligge i Samme fil som listen er. fungerer det således?

LN
Avatar billede spoi Nybegynder
23. april 2007 - 07:23 #4
bej det er egentlig også ok den ligger i en selvstændig fil he he. Bare det virker så er det egentlig lige meget ;O)

LN
Avatar billede excelent Ekspert
23. april 2007 - 11:11 #5
den er baseret på at være i fil hvor liste er med arket aktiveret
det andet spørgsmål du har bliver først efter arbejdstid
Avatar billede excelent Ekspert
23. april 2007 - 15:19 #6
test lige om denne virker,så retter jeg den anden til
husk også de andre spørgsmål du har åbne
Avatar billede spoi Nybegynder
24. april 2007 - 11:47 #7
ja jeg glemmer ingen åbne spørgsmål og skal nok huske at give point ;O)

LN
Avatar billede spoi Nybegynder
10. oktober 2007 - 06:55 #8
jeg har fået det til at virke
Point Excelent?
LN
Avatar billede excelent Ekspert
18. oktober 2007 - 17:01 #9
ok
Avatar billede excelent Ekspert
19. november 2007 - 18:24 #10
for at lukke skal du markere box med navn og klikke accepter
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester