Avatar billede Nervatos Seniormester
04. december 2017 - 15:28 Der er 5 kommentarer og
1 løsning

En macro til at gemme en ny excel fil

Hej med Jer

Er det muligt, at en macro som kan gemme en excel fil - hvor den har kopiret fra to ark?

Hvis min nuværende fil hedder test.xlsm  (hvor macroen kører fra), så skulle den gemme en ny excel fil som hedder test.xlsx hvor den har samme indhold, fra de ark jeg nu ber om. F.eks. Ark 1 og Ark 3. og gemme den på f.eks. skrivebordet.

PFT :)
Avatar billede jens48 Ekspert
04. december 2017 - 21:44 #1
Jeg har prøvet at eksperimentere lidt med det. Er dette noget du kan bruge?

Sub GemFil()
Dim Ark1, Ark2 As String
Dim TestArk, x As Integer

Ark1 = InputBox("Hvilke ark ønsker du at gemme?")
A:
x = 0
For TestArk = 1 To ActiveWorkbook.Worksheets.Count
If Ark1 = Worksheets(TestArk).Name Then
x = 1
End If
Next
If x = 0 Then
Ark1 = InputBox("Indtastede arknavn findes ikke. Prøv igen")
GoTo A:
End If

Ark2 = InputBox("Og Ark 2?")
B:
x = 0
For TestArk = 1 To ActiveWorkbook.Worksheets.Count
If Ark2 <> Worksheets(TestArk).Name Then
x = 1
End If
Next
If x = 0 Then
Ark2 = InputBox("Indtastede arknavn findes ikke. Prøv igen")
GoTo B:
End If

For TestArk = ActiveWorkbook.Worksheets.Count To 1 Step -1
If Worksheets(TestArk).Name <> Ark1 And Worksheets(TestArk).Name <> Ark2 Then
Application.DisplayAlerts = False
Worksheets(TestArk).Delete
End If
Next
ActiveWorkbook.SaveAs FileFormat:=51
End Sub
05. december 2017 - 09:43 #2
En lidt kortere version...

Sub GemArkfaner()
    Dim wkbNew As Workbook
    Dim wkbCurrent As Workbook
    Set wkbCurrent = ActiveWorkbook
    Set wkbNew = Workbooks.Add
    wkbCurrent.Worksheets("Sheet1").Copy After:=wkbNew.Worksheets(wkbNew.Worksheets.Count)
    wkbCurrent.Worksheets("Sheet3").Copy After:=wkbNew.Worksheets(wkbNew.Worksheets.Count)
    wkbNew.SaveAs "test.xlsx", XlFileFormat.xlOpenXMLWorkbook
    wkbNew.Close False
End Sub
Avatar billede Nervatos Seniormester
05. december 2017 - 18:20 #3
Hej med Jer

Tak for forsøget.

#2, den gør det faktisk næsten, men den skal ikke laves som Ark1 (2) Ark2 (2)
Kan det laves på en anden måde, også at der kun er de ark som bliver kopiret over i den nye fil?
05. december 2017 - 18:24 #4
Jeg tænkte at du selv kunne klare at ændre "Sheet1" til "Ark1" osv. så det er de ark du ønsker der kopieres.

"Kan det laves på en anden måde, også at der kun er de ark som bliver kopiret over i den nye fil?" - forstår jeg ikke
05. december 2017 - 18:27 #5
wkbNew.Worksheets(1).delete
Vil slette den eksisterende arkfane i wkbNew. Du kan sætte linjen ind lige før SaveAs linjen
Avatar billede Nervatos Seniormester
05. december 2017 - 18:45 #6
Kunne sagtens bruge det, for har jo andre navne på mine oprigtige ark.

Tusind tak for hjælpen!
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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