Avatar billede Mortend6 Nybegynder
23. september 2010 - 12:22 Der er 5 kommentarer og
1 løsning

makro der opretter ny mappe

Hej

Jeg har brug for en makro, der på en bestemt placering opretter en ny mappe, navngiver den ud fra nogle cellereferencer og gemmer excel-arket ned i den nye mappe - er det noget I kan hjælpe mig med...??

PFT
Avatar billede tjacob Juniormester
23. september 2010 - 13:21 #1
Her er et forslag, som det vil se ud i Excel 2007:

Sub LavMappeOgGem()

    Dim MappeNavn As String
    Dim FilNavn As String
   
    MappeNavn = "C:\Users\DitBrugerNavn\Desktop\DenNyeMappe"  ' = Range("A1").Value
    MkDir MappeNavn
    FilNavn = "test1.xlsm"  ' = Range("A2").Value

    Application.DisplayAlerts = False

    ActiveWorkbook.SaveAs Filename:=MappeNavn & "\" & FilNavn, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    Application.DisplayAlerts = True

End Sub


Her har jeg hardcoded navnene, men du skal blot erstatte dem med de ranges jeg har skrevet bagefter (Naturligvis med dine egne celler). Vær opmærksom på at der skal stå den fulde sti ti mappen.
De to Application.DisplayAlerts linier er tilføjet for at der ikke bedes om bekræftelse fra brugeren. Hvis du ønsker det kan du bare slette de to linier.
Avatar billede Mortend6 Nybegynder
23. september 2010 - 13:46 #2
tak for svar.

Jeg har rettet den, så den burde passe til mig:

Sub LavMappeOgGem()

    Dim MappeNavn As String
    Dim FilNavn As String
   
    MappeNavn = Range("A1").Value
    MkDir MappeNavn
    FilNavn = Range("A2").Value

    Application.DisplayAlerts = False

    ActiveWorkbook.SaveAs Filename:=MappeNavn & "\" & FilNavn, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

    Application.DisplayAlerts = True

End Sub


Hvor der i range a1 står en sti til hvor mappen skal oprettes, og i a2 hvad mappen skal hedde. Umiddelbart fejler den der "MKDir Mappenavn" hver gang. Jeg kører med excel 2003 FYI.

Nogen ideer?
Avatar billede tjacob Juniormester
23. september 2010 - 14:03 #3
Fejlen opstår fordi jeg måske misforstod dig lidt....

Rettes sådan:

1) I A1 skal stå den fulde sti til mappen inklusive mappens navn, og i A2 skal stå det nye filnavn du ønsker at gemme regnearket som.


Jeg er for i øvrigt ikke sikker på at SaveAs-linien er korrekt til Excel 2003, men så kan du prøve at optage en makro hvor du gemmer regnearket, og derefter rette til.
Avatar billede Mortend6 Nybegynder
23. september 2010 - 14:08 #4
jeg fandt en løsning:

Sub Arkiver()
Dim strFilename, strDirname, strPathname, strDefpath As String
On Error Resume Next ' If directory exist goto next line
strDirname = Sheets("mail").Range("l11").Value ' New directory name

strFilename = Sheets("mail").Range("l11").Value 'New file name
strDefpath = "O:\Debitor\Kreditkunder\Afsluttede sager\2010\" 'Default path name
If IsEmpty(strDirname) Then Exit Sub
If IsEmpty(strFilename) Then Exit Sub

MkDir strDefpath & strDirname
strPathname = strDefpath & strDirname & "\" & strFilename 'create total string

ActiveWorkbook.SaveAs Filename:=strPathname, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


Men du skal selvfølgelig have point for dit svar også!
Avatar billede Mortend6 Nybegynder
23. september 2010 - 14:09 #5
så svar lige igen..
Avatar billede tjacob Juniormester
23. september 2010 - 14:15 #6
Ok, godt du fik det til at virke. -svar.
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

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