Avatar billede smons Nybegynder
14. marts 2007 - 23:37 Der er 4 kommentarer og
1 løsning

Kopi af aktivt sheet, +omdøb m. msgbox

Hej Eksperter ;)
Jeg arbejder på et dokument til administration af "varelager".
Jeg har nu lavet 1. side, men står i det problem at der skal skiftes sheet hver måned, og vil, for brugernes skyld, gerne have lavet en macro funktion til at foretage dette.

Funktionen skal gøre følgende:

Når man står i ens aktive sheet og activere makroen, kopiere den det active sheet, kommer med en msgbox (rækkefølgen er ligemeget) som spørger hvad det nye sheet skal hedde, OG - det navn skal skrives i det nye sheet i eks. celle A4.
Avatar billede kabbak Professor
14. marts 2007 - 23:44 #1
Public Sub NySide()
    Dim Navn As String
    ActiveSheet.Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
    Navn = InputBox("Indtast navnet på den nye side")
    ActiveSheet.Name = Navn
    [A4] = Navn
End Sub
Avatar billede smons Nybegynder
14. marts 2007 - 23:49 #2
Det er flueknepperi, men sheetet bliver sat ind som første fremfor sidste..
Ellers er det lige præcis det jeg ledte efter!

#kabbak - Hvad skriver jeg for at få den sidst?
Avatar billede kabbak Professor
15. marts 2007 - 00:12 #3
Den skulle sætte ind efter den sidste, da jeg tæller antal ark, og siger after:
Avatar billede smons Nybegynder
15. marts 2007 - 00:31 #4
Hm, ja det sad jeg også og studsede over, og den kommer selvfølgelig også "After", det er bare mig der er vandt til at køre i "arabisk" rækkefølge når jeg læser sheets :D

Du behøver ikke gøre mere, det er helt perfekt nu, takker!
Avatar billede smons Nybegynder
19. marts 2007 - 00:44 #5
Selvom koden virkede fint, besluttede jeg mig alligevel for at arbejde videre med den. Jeg har lavet denne som virker perfekt.

Sub NytSheet()
Application.ScreenUpdating = False
Dim Skema As Worksheet
Dim Navn As String

Navn = InputBox("Skriv navnet på det nye sheet", "Nyt sheet")

If Navn = "" Then Exit Sub

For Each Skema In Worksheets
    If Skema.Name = Navn Then
        MsgBox "Skemaet eksisterer i forvejen"
        Exit Sub
    End If
Next Skema
Sheets(1).Copy before:=Sheets(1)
Sheets(1).Name = Navn
Sheets(Navn).Move After:=Sheets(Sheets.Count)

Application.ScreenUpdating = True
End Sub

Her kan man kopiere hele ens aktive skema vha. en inputbox. Hvis man trykker cancel bliver intet kopieret, og hvis man skriver navnet på et sheet der findes i forvejen, får man en advarsel. Violá
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