Avatar billede idani Praktikant
04. marts 2005 - 13:50 Der er 5 kommentarer og
2 løsninger

Danne mapper udfra en Excel fil

Hej her er et lille hovedbrud :o)

Jeg har en masse medarbejderer.
Jeg har behov for at danne en mappe for hver af dem med følgende navngivning cpr + navn.

Pt. ligger alle navne og cpr nr. i en samlede fil i excel.

Kan det lade sig gøre og hvis ja hvordan

venlig hilsen
Ida Nielsen
Avatar billede jkrons Professor
04. marts 2005 - 14:07 #1
Mener du en mappe på harddiskeb, eller mener du en Excel projektmappe (fil)?
Avatar billede jkrons Professor
04. marts 2005 - 14:19 #2
Hvis det er det sidste, du mener, kan følgende bruges: Forudsætter at cpr-numre ligger i A-kolonnen, navne i B. Og der må ikke være blanke rækker i A.

Sub LavMapper()

    For Each c In ActiveSheet.Columns("a").Cells
        If c.Value <> "" Then
            Navn = c.Value & c.Offset(0, 1).Value
            Application.Workbooks.Add
            ActiveWorkbook.Activate
            ActiveWorkbook.SaveAs "C:\" & Navn & ".xls"
            ActiveWorkbook.Close
        End If
    Next c

End Sub
Avatar billede jkrons Professor
04. marts 2005 - 14:21 #3
Er det en mappe på fx c-drevet, du mener, kan følgende bruges:

Sub LavMapper()

    For Each c In ActiveSheet.Columns("a").Cells
        If c.Value <> "" Then
            navn = c.Value & c.Offset(0, 1).Value
            MkDir "c:\" & navn
        End If
    Next c

End Su
Avatar billede idani Praktikant
04. marts 2005 - 14:45 #4
Jeg tænkte det nok - i er sgu hurtige med svar.

Den type mappe som jeg tænker på er en som ligger ude på f.eks mit C-drev.

Men se hvor er det lige jeg taster kommandoen ind?? - jeg er ikke nogen ørn til Excel, så bær over med mine "dumme" spørgsmål ik ;o)

venlig hilsen
Ida
Avatar billede jkrons Professor
04. marts 2005 - 15:30 #5
Hej Ida!

Åb den mappe, der indeholder dine cpr-numre/navne. Tryk Alt+F11. Vælg Insert - Module. Kopier mit sidste forslag til modulet.

Gem og Luk modulet.

I Regnearket vælger du Funktioner - Makro - Makroer. Find makroen LavMapper på listen og marker den. Klik på Afspil makro, så skulle det gerne gå af sig selv.

Hvis du ikke har cpr og navne liggende i A og B, skal du rette

For Each c In ActiveSheet.Columns("a").Cells

til den kolonne, hvor cpr numre faktisk ligger.

Ligger navne ikke lige ved siden af, skal også Offset ændres.

c.Offset(0, 1)

betyder en kolonne til højre for kolonnen med cpr-numre. Ret til 2, og det betyder kolonnen to til højre for og så fremdeles.

Og - selv om det ikke har noget med sagen at gøre - bør jeg vel minde om lovgivningen omkring brug af cpr-numre :-)
Avatar billede idani Praktikant
04. marts 2005 - 16:35 #6
Hej Jkrons

Mht. registerloven så bare rolig, jeg sidder i en løn funktion og der er vi af gode grunde nød til at opbevarer vores dokumentation lige som alle alle andre ;o), og da maget af vores dokumentation kommer via mail, ja så er det oplagt at arkiverer det på ovenstående måde.

Jeg har fået macroen til at virke, mange tak men var det muligt at få lagt en lille tilføjelse ind. jeg vil nemlig meget gerne have mappe "navnet" til at stå som følger
cpr - navn - Dvs. 130274-9998 - Ida Nielsen, altså med den lille "-" som adskillelse

Tak for hjælpen

Ida Nielsen
Avatar billede jkrons Professor
04. marts 2005 - 22:30 #7
Hej Ida

Omkring cpr var det også bare ment som info :-)

Bindestregen kommer her :-)

Sub LavMapper()

    For Each c In ActiveSheet.Columns("a").Cells
        If c.Value <> "" Then
            navn = c.Value & " - " & c.Offset(0, 1).Value
            MkDir "c:\" & navn
        End If
    Next c

End Sub
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