Avatar billede Butterfly Ekspert
28. november 2018 - 12:02 Der er 2 kommentarer og
1 løsning

Marker alle ark/faner undtaget 2

Hej
Jeg har noget kode er kan markere alle ark/faner undtaget 1, men hvordan får jeg den til at markere alle ark/faner undtaget 2. "Forside" og "Eksport"

Sub Select_All_Sheets_But_One()
        Dim WS As Worksheet
        Const Sheet_Not_To_Select As String = "Eksport"
        For Each WS In Worksheets
            If WS.Name <> Sheet_Not_To_Select Then WS.Select   
        Next
        For Each WS In Worksheets
            If WS.Name <> Sheet_Not_To_Select Then WS.Select False
        Next
        Set WS = Nothing
End Sub
Avatar billede Jan Hansen Ekspert
28. november 2018 - 12:32 #1
Sub Select_All_Sheets_But_2()
        Dim WS As Worksheet
        Const Sheet_Not_To_Select As String = "Eksport"
        Const Sheet_Not_To_Select2 As String = "Forside"
        For Each WS In Worksheets
            If WS.Name <> Sheet_Not_To_Select Then
                  If WS.Name <> Sheet_Not_To_Select2 Then WS.Select 
            end if 
        Next
        For Each WS In Worksheets
            If WS.Name <> Sheet_Not_To_Select Then
                  If WS.Name <> Sheet_Not_To_Select2 Then WS.Select  FALSE
            end if 
        Next
        Set WS = Nothing
End Sub


ej testet

Jan
Avatar billede Butterfly Ekspert
28. november 2018 - 13:54 #2
Den virker perfekt
Hvad så hvis makroen også skal tage en kopi af siden efter "Forsiden" og sætte ind på alle ark, - det kan jeg ikke få til at virke. Jo jeg kan tage en kopi og få makroen til at starte i A3 og markere hele området, men der bliver ikke sat noget ind.
På arket efter "Forside" er der nogle sumifs formler til arket "Eksport"
Avatar billede Jan Hansen Ekspert
28. november 2018 - 15:38 #3
tænker noget ala

Dim WS As Worksheet
Const Sheet_Not_To_Select As String = "Eksport"
Const Sheet_Not_To_Select2 As String = "Forside"
Const Sheet_To_Copy = "Copyside" ' rettes til den rigtige

Dim wsCopysheet As Worksheet
Dim rCopyArea As Range
Dim wsPasteSheet As Worksheet
Dim rPasteCell As Range
     
Sub CopyPasteSheet()
    For Each WS In Worksheets
        If WS.Name <> Sheet_Not_To_Select Then
            If WS.Name <> Sheet_Not_To_Select2 Then
                If WS.Name = Sheet_To_Copy Then
                    CopySheet
                Else
                    PasteSheet
                End If
            End If
        End If
    Next
End Sub
Private Sub PasteSheet()
    Set wsPasteSheet = WS
    Set rPasteCell = wsPasteSheet.Range("A3")
    rPasteCell.PasteSpecial xlPasteAll
End Sub
Private Sub CopySheet()
    Set wsCopysheet = WS
    Set rCopyArea = wsCopysheet.Range("A3")
    Set rCopyArea = Range(rCopyArea, wsCopysheet.Cells(Rows(rCopyArea.End(xlDown)), Columns(rCopyArea.End(xlToRight))))
    rCopyArea.Copy
End Sub


ej testet

Jan
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