|  | 		    
					
    
        
            
                
                | |  | Låse kun dele af Excel ark? Fra :
  NegoZatoR  | Vist : 1348 gange 200  point
 Dato :  24-01-13 13:45
 | 
 |  | 
 
                Hey allesammen .. :) 
 Sidder og laver et excel-ark , hvor jeg gerne vil låse hele arket med en kode (Så langt så godt) -
 Men jeg vil så gerne åbne for nogen  celler inde i arket. 
 Altså for eksempel (pseudo):
 Lås alle celler mellem A1:W45
 Lås op alle celler mellem A4:L16
 Jeg er begyndt at kigge på en macro, der løber alle 'sheets' igennem, men får en fejl når den skal oplåse på sidst nævnte range. 
 | Kode Sub WorksheetLoop()
 
 Dim WS_Count As Integer
 Dim I As Integer
 Dim CurrentSheet As Worksheet
 
 ' Set WS_Count equal to the number of worksheets in the active
 ' workbook.
 WS_Count = ActiveWorkbook.Worksheets.Count
 
 ' Begin the loop.
 For I = 1 To WS_Count
 ' Select current sheet
 Set CurrentSheet = ActiveWorkbook.Worksheets(I)
 
 ' Replace text from selected range
 ' LResult = CurrentSheet.Range("B4").Replace("Lavet", "Kommentarer")
 CurrentSheet.Unprotect Password:="pass"
 CurrentSheet.Range("a:w").Cells.Locked = False
 
 ' lock row
 Set r1 = CurrentSheet.Range("A1:W45")
 Set r2 = CurrentSheet.Range("A4:L16")
 r1.Cells.Locked = True
 
 ' unlock rows
 ' Set r2 = CurrentSheet.Range("A4:L16") <-- [B]HER GÅR DET GALT .. [/B]
 
 CurrentSheet.Protect Password:="pass"
 
 Next I
 End Sub
 | 
 |  |  | 
 |  |  | 
 
                Hvad er det lige du vil låse, må man ikke kunne se indholdet, eller må man blot ikke kunne rette i dem?
 Normalt vil jeg foreslå at du under celleformat --> sikkerhed, markere de celler du vil låse, og afmarkerer dem der ikke skal være låst. Derefter går fu til "Beskyt ark" laver de indstillinger du vil skal gælde for låste og ikke låste celler, og så lægger en kode på.
                
                
                 |  |  | 
 | |  | Kommentar Fra :
  NegoZatoR  | 
 Dato :  24-01-13 22:52
 | 
 |  | 
 
                Jeg vil gerne låse hele dokumentet undtagen Range("A4:L16")
 Det du siger jeg kan gøre - det er jeg selvfølgelig klar over, men du kan godt se når jeg måske har noget der ligner 800 sheets inde i min workbook, så vil det tage 112år at komme igennem :-/
 Derfor vil jeg bruge en makro til det :)
                
                
                 |  |  | 
 | |  | Kommentar Fra :
  NegoZatoR  | 
 Dato :  25-01-13 14:03
 | 
 |  | 
 
                Har fundet ud af det .. :) 
 Skulle selecte celle området først før jeg kunne ændre på beskyttelsen.
 | Kode ISub test()
 Application.ScreenUpdating = False
 For Each sh In ThisWorkbook.Sheets
 sh.Unprotect Password:="pass"
 sh.Select
 Range("A4:L16").Select
 Selection.Locked = False
 sh.Protect Password:="pass"
 Next
 Application.ScreenUpdating = True
 End Sub
 | 
 |  |  | 
 | |  | Accepteret svar Fra :
  meiland  |  Modtaget 200  point
 Dato :  25-01-13 14:03
 | 
 |  | 
 
                Prøv denne !
 Sub WorksheetLoop()
 Dim WS_Count As Integer
 Dim I As Integer
 Dim CurrentSheet As Worksheet
 ' Set WS_Count equal to the number of worksheets in the active
 ' workbook.
 WS_Count = ActiveWorkbook.Worksheets.Count
 ' Begin the loop.
 For I = 1 To WS_Count
 ' Select current sheet
 Set CurrentSheet = ActiveWorkbook.Worksheets(I)
 ' Remove sheet protection
 CurrentSheet.Unprotect Password:="pass"
 ' lock all rows
 Cells.Select
 Selection.Locked = True
 ' unlock rows
 Range("A4:L16").Select
 Selection.Locked = False
 'Protect sheet
 CurrentSheet.Protect Password:="pass"
 Next I
 End Sub
                
                
                 |  |  | 
 | |  | Kommentar Fra :
  NegoZatoR  | 
 Dato :  25-01-13 14:05
 | 
 |  | 
 
                Meiland .. :) - Jeps lige præscis .. :)
 Du har også lavet Selection inden du ændre på beskyttelsen .. :) 
 Points all yours :)
                
                
                 |  |  | 
 | |  | Godkendelse af svar Fra :
  NegoZatoR  | 
 Dato :  25-01-13 14:06
 | 
 |  | 
 
                Tak for svaret meiland.
 Godt arbejde :)
                
                
                 |  |  | 
 | |  | Du har følgende muligheder |  | 
 |  | 
            
               
                    Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
 Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
 |  |  | 
 |  |