Avatar billede kiilerrich Nybegynder
20. april 2011 - 10:50 Der er 9 kommentarer og
1 løsning

Knap til oprettelse af nyt ark

Hej alle.

Jeg har en excelfil som jeg bruger til at styrer mine projekter med.

Det jeg søger er en knap som, når man trykker på den, danner den et nyt ark ud fra et ark som er sat op som standart for underark. Den skulle gerne gøre det sådan at den selv danner arkeds navn ud fra den celle som man står på (aktive celle). Samtidig skal den lave den aktive celle om til et link til det nye ark (så skal man jo ikke det hele igennem for at finde det).

Er der en venlig sjæl der kan hjælpe med det...??

På forhånd tak.
Avatar billede Ialocin Novice
20. april 2011 - 11:49 #1
Hej kiilerrich


Prøv evt. om du som udgangspunkt kan bruge følgende.

Jeg har døbt et ark "DefaultArk", hvorpå jeg har oprettet en kommandoknap. Bag knappen har jeg følgende kode:

----------

Private Sub cmdNytArk_Click()
Dim a As Integer    'variabel til antallet af ark
Dim n As String    'variabel til navnet på den aktive celles værdi

'tildel n den aktive celle værdi
n = ActiveCell.Value

'tildel a antallet af ark
a = ThisWorkbook.Sheets.Count

'kopier defaultarket og placer efter det sidste ark
Worksheets("DefaultArk").Copy After:=Worksheets(a)

'tildel det nye ark navnet på celleværdien i den aktive celle
ActiveSheet.Name = n

End Sub

---------

Koden tjekker ikke for sammenfald af navne på de nyoprettede ark !!!
Hvorfor der kommer en fejl ... men det kan fikses.

Jeg vender lige tilbage med hensyn til at oprette et link i den aktive celle.


Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
20. april 2011 - 13:16 #2
Hej Kiilerrich

Der er en mindre detalje i ovenstående kode .... den kopiere nemlig også knappen med !!! ... Jeg vender lige tilbage

Mvh Nicolai
Avatar billede Ialocin Novice
20. april 2011 - 13:32 #3
Hej Kiilerrich

Flyt blot kommandoknappen + tilhørende kode til det ark, hvorpå du vælger cellerne, som døber det nyoprettede ark.

Mvh Nicolai
Avatar billede kiilerrich Nybegynder
20. april 2011 - 13:55 #4
Takker for den kode, den virker efter hensigten. Det med at den kopier knappen fik jeg selv løst.

Ville man også kunne gøre sådan at den også tildeler fx b1 i det ny ark sammenavn...
Avatar billede Ialocin Novice
20. april 2011 - 22:55 #5
Hej Kiilerrich

Godt at høre, at det virker.
Jeg roder stadig lidt med det med linket i den aktive celle .....

Angående det samme navn i eksempelvis "B1" ??
Forstår jeg dig ret, så vil du ha´ arknavnet, på det nye ark, til også at stå i celle "B1" på det nye ark ???

Hvis det er korrekt ... så kopier følgende linie ind i din kode umiddelbart før "End sub"

ActiveSheet.Range("B1").Value = n


med venlig hilsen, Nicolai
Avatar billede kiilerrich Nybegynder
28. april 2011 - 14:28 #6
Hej Lalocin.

Takker endnu engang for din hjælp og undskylder for tiden inden jeg har vendt tilbage.

Alt virker efter hensigten, har dog ikke prøvet ActiveSheet.Range("B1").Value = n endnu.

Møske du også kan hjælpe mig ved dette:

Nor nu jeg har oprettet et nyt ark efter overstående måde, så har jeg nogle koder som henter oplysninger fra de ark som jeg har oprettet.

Kode.: =INDIREKTE("'" &B43 &"'!F43")

Det jeg vil spørge omer, hvis jeg nu skal indsætte en ny linje i det oprettet ark så skifter den ikke F43 til den linje summen nu er. (håber du forstår hvad jeg mener)

Mvh
Avatar billede kiilerrich Nybegynder
28. april 2011 - 14:33 #7
ActiveSheet.Range("B1").Value = n er nu prøvet og kan kun sige... det virker bare.. :-)
Avatar billede kiilerrich Nybegynder
29. april 2011 - 12:12 #8
Forresten skriv et svar så du kan få dine point for hjælpen
Avatar billede Ialocin Novice
03. maj 2011 - 12:43 #9
Hej Kiilerrich

Hermed at svar.

Jeg er dog ikke kommet nærmere med hensyn til at danne et link i den aktive celle ..... ?? ... har været lidt fraværende :o)

Hvad mener du med følgende ?


Kode.: =INDIREKTE("'" &B43 &"'!F43")

Det jeg vil spørge omer, hvis jeg nu skal indsætte en ny linje i det oprettet ark så skifter den ikke F43 til den linje summen nu er. (håber du forstår hvad jeg mener)




Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
04. maj 2011 - 22:29 #10
Hej Kiilerrich

Hermed en tilrettet kode af tidligere udgave.
Koden opretter et link i den aktive celle på worksheet 2, som linker til det nyoprettede ark med navnet fra den aktive celleværdi.

Note:
Det er ikke muligt at ha´ 2 arknavne med samme navn!
Koden håndterer derfor denne del, hvis sammenfald sker ?


-----------

Private Sub cmdOpretNytArk_Click()
On Error GoTo ErrorHandler
        Dim a As Integer    'variabel til antallet af ark
        Dim n As String    'variabel til navnet på den aktive celles værdi
        Dim k As String    'variabel til adressen på den aktive celle
       
       
       
       
        'tildel n den aktive celles værdi
        n = ActiveCell.Value
       
        'tildel k den aktive celles adresse
        k = ActiveCell.Address
       
       
       
        'hvis den aktive celle er tom
        If n = "" Then
       
            MsgBox "Den aktive celle er tom", vbQuestion
       
       
        'ellers
        Else
       
            'tæl og tildel a antallet af ark
            a = ThisWorkbook.Sheets.Count
       
       
            'kopier defaultarket og placer efter det sidste ark
            Worksheets("DefaultArk").Copy After:=Worksheets(a)

   
   
            'tildel det nye ark navnet på celleværdien i den aktive celle
            ActiveSheet.Name = n
       
            'tildel værdien i celle "B1" på det nye ark ... celleværdien fra den aktive celle
            ActiveSheet.Range("B1").Value = n
           
            'tildel celle "B1" navnet n (sammen navn som værdien/arknavnet)
            ActiveSheet.Range("B1").Name = n
       
             
          'på worksheet 2 oprettes et link anker i k (adressen på den aktive celle) ... som linker til navnet n på det nye ark
          With Worksheets(2)
               
                .Hyperlinks.Add Anchor:=.Range(k), Address:="", SubAddress:=n, TextToDisplay:=(n)
         
          End With
       
       
                 
           
        End If



exit_cmd_OpretNytArk:
    Exit Sub



'fejlmeddelelse ved sammenfald af navne på arkene
ErrorHandler:

        Select Case Err.Number
                               
                'der findes allerede et ark med samme navn, så prøv igen!
                Case 1004
       
                    'indtast venligst et nyt arknavn
                  n = InputBox("Indtast venligst et nyt arknavn", "Arknavnet findes allerede!")
                     
        End Select



'fortsæt afvikling fra linien som udløste fejlen
Resume

End Sub


------


Med venlig hilsen, Nicolai
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