Avatar billede kavlar Novice
18. december 2008 - 15:53 Der er 6 kommentarer og
1 løsning

Macro - Liste over ark i en projektmappe

Hej,

Jeg vil gerne lave en macro, der rydder op i min projektmappe.
Jeg har en pivot, hvor man kan dobbeltklikke på en celle for at få at se de data der ligger til grund for pivoten. Det genererer imidlertid et nyt ark hver gang... Ark1, Ark2, Ark3 osv.
For at man ikke skal sidde og slette dem manuelt, vil jeg gerne have lavet en macro, der sletter dem automatisk. Jeg havde forestillet mig en for-løkke:

For i = 1 To 99
NAVN = "Ark" & i
    Sheets(NAVN).Select
    ActiveWindow.SelectedSheets.Delete
Next i

Men det virker kun, hvis der er et ark, der hedder Ark1 og sletter kun fortløbende, så har man manuelt slettet Ark2, men ikke fra Ark3 og op, slettes disse ikke.
Kan man i stedet lave en liste over ark i en projektmappe og på den måde slette dem?

Nogen ideer?
Avatar billede jkrons Professor
18. december 2008 - 16:12 #1
Prøv med noger i denne stil:

For i = 2 to Sheets.Count
Sheets(i).Delete
Next i

Arket med piv ottabellen skal ligge først i nmappen.
Avatar billede supertekst Ekspert
18. december 2008 - 16:17 #2
eller

    For Each ark In ActiveWorkbook.Sheets
        arkNavn = ark.Name
    Next ark

så kan arknavn testes fdør det evt. slettes
Avatar billede be_nice Juniormester
18. december 2008 - 16:19 #3
Ifølge reglerne er det ikke tilladt at have 2 ens spørgsmål - http://www.eksperten.dk/spm/856946 - så du skal lukke det ene af dine spørgsmål (evt. med en henvisning til det andet)
/Be_Nice
Avatar billede kavlar Novice
19. december 2008 - 13:11 #4
Tak for feedback. Jeg har testet og kom frem med følgende, som bygger på supertekst's forslag:


Sub Slet_ark()
For Each ark In ActiveWorkbook.Sheets
        arkNAvn = ark.Name
        If arkNAvn = "OPDATER" Then
        Else
            If arkNAvn = "PIVOT_WC" Then
            Else
                If arkNAvn = "PIVOT_PO" Then
                Else
                    If arkNAvn = "PIVOT_PRODNR" Then
                    Else
                        If arkNAvn = "PIVOT_WC_PO" Then
                        Else
                            If arkNAvn = "PIVOT_WC_PRODNR" Then
                            Else
                                If arkNAvn = "PIVOT_WC_PO_PRODNR" Then
                                Else
                                    If arkNAvn = "PIVOT_WC_PRODNR_PO" Then
                                    Else
                                        If arkNAvn = "DATA" Then
                                        Else
                                        Sheets(arkNAvn).Delete
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
    Next ark

End Sub
Avatar billede kavlar Novice
19. december 2008 - 13:11 #5
supertekst. Jeg tror dit svar var en kommentar, hvorfor jeg ikke kan give dig point. prøv igen og du får kredit.
Avatar billede supertekst Ekspert
19. december 2008 - 13:31 #6
Ok - du får et svar...
Avatar billede supertekst Ekspert
07. januar 2009 - 14:25 #7
:-) ja - lang kredit......
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