Avatar billede mercu Nybegynder
11. december 2009 - 16:44 Der er 4 kommentarer

Loope igennem mappe(r) ? hjælp?

Jeg sidder med et mindre problem.

Jeg har behov for at loope igennem 2 mapper med Excel workbooks. Jeg vil så sammenligne filnavnene og, hvis de fire sidste karaktere i filnavnet er ens, udføre nogen handlinger.

Jeg tænker lidt som følgende pseodu kode. Så håber der er en, som kan hjælpe mig lidt til at få den skridtet videre for aner ikke, hvordan jeg får det gjort.

år_check = false

loop igennem salg_mappen
år_salg = right(filnavn, 4)

loop igennem kundemappen
år_kunde = right(filnavn, 4)

if år_salg = år_kunde  år_check = true

if år_check = true then..
bla bla.
Avatar billede Slettet bruger
11. december 2009 - 18:04 #1
Prøv og kigge på kommandoen: dir
Avatar billede mercu Nybegynder
11. december 2009 - 20:35 #2
Jeg har kigget på dir() og kan også se den burde være "løsningen".

Men jeg kan ikke rigtig få den til at udføre netop det jeg vil.

Jeg kan sagtens få den til simple ting, som åbne alle workbooks i en mappe.
Det kunne jeg muligvis godt opbygge min kode omkring, men kan jeg

sammenligne åbne workbooks navne? fx hvis jeg har 10 åbne workbooks.. og de hedder fx. år2007, salg2007 også sige
if right(xx, 4) = right(yy, 4) then
bla bla. ?
Avatar billede Slettet bruger
12. december 2009 - 20:27 #3
Forstår ikke hvad du mener med 'åbne' - dir(...) åbner intet men retunerer filnavn. søgetip:  vba loop dir
Hvis man vil 'noget' med indholdet af filen der har et givet navn, skal den åbnes (i excel) - koden dertil er jeg desværre ikke den rette til at vejlede om.
Avatar billede allanjensen333 Nybegynder
20. december 2009 - 00:05 #4
Kan du bruge følgende?

Dim objFSO As Scripting.FileSystemObject
Dim objKundemappe As Folder
Dim objSalgmappe As Folder
Dim objKundefil As File
Dim objSalgfil As File

Set objFSO = New Scripting.FileSystemObject
Set objKundemappe = objFSO.GetFolder("C:\Kundemappe")
Set objSalgmappe = objFSO.GetFolder("C:\Salgmappe")

'-- Hver her fil i kundemappen
For Each objKundefil In objKundemappe.Files
    '-- Hver her fil i salgsmappen
    For Each objSalgfil In objSalgmappe.Files
        If Right(replace(objKundefil.Name,".xls",""), 4) = Right(replace(objSalgfil.Name,".xls",""), 4) Then
            '-- Hvis sidste 4 karakter er lig med hinanden, så gø noget
        End If
    Next
Next
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
Kurser inden for grundlæggende programmering

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