Avatar billede limic Nybegynder
27. december 2007 - 16:33 Der er 10 kommentarer og
1 løsning

Hente ark nr. til celle

Hej alle...

Har et ark "Index .223" hvor jeg i celle "O2" indtaster et nr. på et nyt ark, som bliver oprettet når jeg trykker på en knap.

Det jeg gerne vil have, er at det nr. jeg taster bliver overført til "index .223" arket i "B" kolonnen og det nye ark i celle "AZ5:BB5"

Det skal lige siges at i "Index .223" arket bliver hver celle kun brugt en gang, de nye ark bliver listet under hinanden nedefter i kolonne "B"

En sidste ting er, kan man lave koden så den "advarer" hvis man er ved at oprette et ark nr. som allerede eksistere, i dag får jeg en Run-Time error 1004 fejl om at arket ikke kan hedde det samme som et allerede eksisterende ark.

Koden som jeg indtil videre bruger ser sådan her ud:

Sub AddWorksheetExample()
Application.EnableEvents = False
Range("o2").Select
    Dim wksNewSheet    As Excel.Worksheet
    Dim wksNewSheets    As Excel.Worksheet
    detteark = ActiveSheet.Name
    navn = ActiveCell.Value
            Set wksNewSheet = Worksheets.Add
        wksNewSheet.Name = navn
            Sheets(detteark).Activate
        Selection.ClearContents
    Sheets("Master").Select
    Cells.Select
    Selection.Copy
    wksNewSheet.Select
    Cells.Select
    ActiveSheet.Paste
    ActiveWindow.DisplayHeadings = False
    Range("F15:H15").Select

Sheets("Data2").Select
    Rows("1:1").Select
    Selection.Copy
    Sheets("Index .223").Select
    Range("A65536").End(xlUp).Offset(2, 0).Select
    ActiveSheet.Paste
End Sub


VH
Michael
Avatar billede jkrons Professor
27. december 2007 - 17:08 #1
Jeg er ikke sikker på, at jeg har forstået præcis, hvad du ønsker men prøv dette og lad mig vide, hvad der mangler.

Sub AddWorksheetExample()
Application.EnableEvents = False
On Error GoTo fejl
Range("o2").Select
    Dim wksNewSheet    As Excel.Worksheet
    Dim wksNewSheets    As Excel.Worksheet
    detteark = ActiveSheet.Name
    navn = ActiveCell.Value
            Set wksNewSheet = Worksheets.Add
        wksNewSheet.Name = navn
            Sheets(detteark).Activate
        Selection.ClearContents
    Sheets("Master").Select
    Cells.Select
    Selection.Copy
    wksNewSheet.Select
    Cells.Select
    ActiveSheet.Paste
    ActiveWindow.DisplayHeadings = False
    Range("F15:H15").Select

Sheets("Data2").Select
    Rows("1:1").Select
    Selection.Copy
    Sheets("Index .223").Select
    Range("A65536").End(xlUp).Offset(2, 0).Select
    ActiveSheet.Paste
    Range("b65536").End(xlUp).Offset(1, 0).Value = navn
Exit Sub
fejl:
    If Err.Number = 1004 Then
        MsgBox "Du kan ikke oprette et ark med dette nummer, da det allerede eksisterer", _
        vbOKOnly + vbCritical
    End If

End Sub
Avatar billede limic Nybegynder
27. december 2007 - 17:49 #2
Hej jkrons

Det er lidt derhen ad, men det nye ark nr. bliver indsat 2 celler for højt i arket, jeg henter nogle rammer i "Data2" hvor nummerene skal indsættes.

MsgBox´en kommer også først frem når der er oprettet et nyt ark, som Excel så selv døber eks. "Ark14"

Og det sidste der mangler er at det nye ark nr. også bliver kopieret over i det ny ark i celle "AZ5:BB5"


VH
Michael
Avatar billede jkrons Professor
27. december 2007 - 19:26 #3
Rækken kan vi nok godt flytte.

Det må kunne gøres ved at ændre til
Range("b65536").End(xlUp).Offset(3, 0).Value = nav

Msgbox'en må jeg lige tænke over. Problemet er, at fejlen først opstår, når arket skal omdøbes. Det indsættes uden problemer, men kan ikke navngives, men det kan der findes en løsning på, hvor man undersøger de ark, der allerede er i mappen. Den kigger jeg lige på.

Den sidste er jweg ikke helt med på. Skal nummeret stå i alle cellerne AZ5, BA5 og BB5?
Avatar billede jkrons Professor
27. december 2007 - 19:27 #4
navn ikke nav
Avatar billede limic Nybegynder
27. december 2007 - 20:05 #5
Det virker også ved oprettelse af det første ark, men når jeg så opretter næste ark, bliver nummeret indsat 2 celler under ???

Cellerne AZ5, BA5 og BB5 er flettede celler, så det er kun AZ5

VH
Michael
Avatar billede limic Nybegynder
27. december 2007 - 21:33 #6
Omkring indsættelse af nummer, har jeg fundet fejlen... det var mig der bøffede i den, da de 2 første celler stod tomme, blev de selvfølgelig valgt først.

VH
Michael
Avatar billede kabbak Professor
27. december 2007 - 21:39 #7
jeg har sat det med at tjekke om arket eksisterer ind i koden:

Sub AddWorksheetExample()
    Application.EnableEvents = False
    On Error GoTo fejl
    Range("o2").Select
    Dim wksNewSheet As Excel.Worksheet
    Dim wksNewSheets As Excel.Worksheet
    detteark = ActiveSheet.Name
    navn = ActiveCell.Value
   
    For Each sh In ActiveWorkbook.Sheets
        If sh.Name = navn Then
            MsgBox " Aket eksisterer"
            Exit Sub
        End If
    Next
   
    Set wksNewSheet = Worksheets.Add
    wksNewSheet.Name = navn
    Sheets(detteark).Activate
    Selection.ClearContents
    Sheets("Master").Select
    Cells.Select
    Selection.Copy
    wksNewSheet.Select
    Cells.Select
    ActiveSheet.Paste
    ActiveWindow.DisplayHeadings = False
    Range("F15:H15").Select

    Sheets("Data2").Select
    Rows("1:1").Select
    Selection.Copy
    Sheets("Index .223").Select
    Range("A65536").End(xlUp).Offset(2, 0).Select
    ActiveSheet.Paste
    Range("b65536").End(xlUp).Offset(1, 0).Value = navn
    Exit Sub
fejl:
    If Err.Number = 1004 Then
        MsgBox "Du kan ikke oprette et ark med dette nummer, da det allerede eksisterer", _
              vbOKOnly + vbCritical
    End If

End Sub
Avatar billede limic Nybegynder
27. december 2007 - 22:07 #8
Hej kabbak

Den når stadig at oprette et nyt ark (dog kun et tomt et) inden boxen popper op.

Har selv redigeret lidt i koden og har fået den til at kopiere nr. til det nye ark.

Sub AddWorksheetExample()
Application.EnableEvents = False
On Error GoTo fejl
Range("o2").Select
    Dim wksNewSheet    As Excel.Worksheet
    Dim wksNewSheets    As Excel.Worksheet
    detteark = ActiveSheet.Name
    navn = ActiveCell.Value
            Set wksNewSheet = Worksheets.Add
        wksNewSheet.Name = navn
            Sheets(detteark).Activate
       
    Sheets("Master").Select
    Cells.Select
    Selection.Copy
    wksNewSheet.Select
    Cells.Select
    ActiveSheet.Paste
    ActiveWindow.DisplayHeadings = False
    Range("F15:H15").Select

Sheets("Data2").Select
    Rows("1:1").Select
    Selection.Copy
    Sheets("Index .223").Select
    Range("A65536").End(xlUp).Offset(1, 0).Select
    ActiveSheet.Paste
    Range("b65536").End(xlUp).Offset(1, 0).Value = navn
   
    Range("O2").Select
    Selection.Copy
    wksNewSheet.Select
    Range("AZ5:BB5").Select
    ActiveSheet.Paste
    Range("F15").Select
       
    Sheets("Index .223").Select
    Range("O2").Select
    Selection.ClearContents
Exit Sub
fejl:
    If Err.Number = 1004 Then
        MsgBox "Du kan ikke oprette et ark med dette nummer, da det allerede eksisterer", _
        vbOKOnly + vbCritical
    End If

End Sub



VH
Michael
Avatar billede kabbak Professor
27. december 2007 - 23:06 #9
du skal ikke fange det ved on error, det skal være der hvor jeg satte det ind.
Avatar billede limic Nybegynder
28. december 2007 - 00:04 #10
Det prøvede jeg også, men det virkede ikke ?
Avatar billede limic Nybegynder
01. januar 2008 - 15:40 #11
Har ikke helt fået svar på mit spørgsmål og har ikke fået koden til at virke optimalt.

Har derfor valgt en anden opstilling og lukker derfor spørgsmålet, i skal ha´ tak for forsøgene.

VH.
Michael
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