PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBABegränsa tillgång mellan olika användare och flikarBegränsa tillgång mellan olika användare och flikar
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2017-09-19 09:04
 

Arbetar i Excel 2016.

 

Har ett dokument med 4 olika flikar:

Blad1

Blad2

Blad3

Blad4

Jag vill att samtliga användare kommer åt Blad1. Jag vill sedan tilldela access med lösenord till Blad2-4. Dvs att du ska endast kunna titta på det som du har access till via lösenord :) Vid fel lösenord eller avbruten inlogg ska du åka tillbaka till Blad1.

 

Lösning någon? Jag har testat en funktion men problemet blev då användaren avbryter lösenordsinloggningen....

 

Tack på förhand!

Nytt inlägg
 2017-09-20 12:40
 
 Ändrad av Erik  på 2017-09-20 12:41:10
Hej Johan,

Jag skrev ett liknande macro för ett par år sedan. Två skillnader från din förfrågan:

1. Access ges till specifika celler i aktuellt sheet. (Borde dock gå att ändra till olika sheets istället)
2. Access ges baserat på användarens username, alltså behövs inte lösenord om användaren loggar in från "sin" dator, och du vet vilka användarnamn som skall få vilken access.

Testa genom att skriva ditt eget användarnamn i en cell, kopiera in macrona, spara och stäng filen. Öppna den igen, nu bör du bara kunna redigera 4x2 celler under cellen du skrev ditt användarnnamn i.

Du får alltså ha någon form av master-data där du skriver vilka användare som skall ha tillgång till vilka sheet. (istället för 4x2 celler som i mitt fall)

//Erik

Sub Workbook_Open()
Application.ScreenUpdating = False

' Unlock the active sheet
ActiveSheet.Unprotect Password:="Zlatan81"

' Finds the username and selects the 4x2 cells below the username
Cells.Find(What:=(Environ$("Username")), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Selection.Offset(1, 0).Resize(Selection.Rows.Count + 3, Selection.Columns.Count + 1).Select

' Makes the above selected cells unlocked
Selection.Locked = False
Selection.FormulaHidden = False

' Selects the cell 2 cell above the username (In this case that cell is the real name of the user)
Cells.Find(What:=(Environ$("Username")), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Selection.Offset(-2, 0).Select

'Lock the active sheet
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True, Password:="Zlatan81"
Application.ScreenUpdating = True

End Sub

Sub Workbook_beforeclose(Cancel As Boolean)
Application.ScreenUpdating = False

' Unlock the active sheet
ActiveSheet.Unprotect Password:="Zlatan81"

'Protects all cells
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False
Cells(1, 1).Select

'Lock the active sheet
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True, Password:="Zlatan81"
Application.ScreenUpdating = True

'Saves the workbook
ThisWorkbook.Close SaveChanges:=True

End Sub
Nytt inlägg
 2017-09-25 11:32
 
Hej hej

Följande kod ser till att samtliga känsliga flikar blir dolda för Användaren när han/hon öppnar/stänger dokumentet. Koden ska läggas på Thisworkbook" i projektvyn. Därefter så ska du lägga till ett tredje makro i en egen modul (infoga modul i projektvyn), detta får användaren trigga med antingen en knapp eller ett kortkommando. Detta makro (unhideMysheet) öppnar en specific flik beroende på vilket password användaren fyller i.
Koden fungerar oberoende på vad bladen heter och väljer istället blad beroende på bladnummer(index). Du byter själv lösenord genom att byta "apa", "sten", "gran" till något annat. Koden förutsätter att ditt blad1 är indexerat som sheet(1). Dvs detta blad skapades först.

Private Sub workbook_open()
Dim ws As Worksheet

For Each ws In ThisWorkbook.Sheets

If Not ws.Index = 1 Then
ws.Visible = xlSheetVeryHidden
ws.Protect
End If
Next ws

End Sub
Private Sub workbook_close()
Dim ws As Worksheet

For Each ws In ThisWorkbook.Sheets

If Not ws.Index = 1 Then
ws.Visible = xlSheetVeryHidden
ws.Protect
End If
Next ws

ActiveWorkbook.Save savechanges:=True

End Sub

Sub unHideMySheet()

Dim PassWord As String: PassWord = InputBox("Enter a Password" & vbNewLine & "Pw is Case-sensitive")

Select Case PassWord
Case "Apa"
Sheets(2).Visible = True
Case "gran"
Sheets(3).Visible = True
Case "sten"
Sheets(4).Visible = True
Case Else
msgBox PassWord & " is not a valid password"

End Select


End Sub

Mvh
Christian


Nytt inlägg
 2018-12-25 23:20
 

 Hej,

Ska filen användas i ett nätverk eller ska den skickas runt via mail utanför nätverket?

Jag skulle nog låta alla användare som startar filen behöva skriva in ett lösenord. Om lösenordet är fel stängs arbetsboken  (t.ex. genom if lösen=fel eller att inloggningen avbryts then Activeworkbook.close) annars visas de flikar som lösenordet ger behörighet till. 

D.v.s om man skriver in

"lösen1" visas bara blad1

"lösen2" visas blad1 och blad2

"lösen3" visas blad1, blad2 och blad3

O.s.v

 

Om filen ska användas i ett nätverk är det nog lättast med någon styrning via det nätverksnamn användaren har i nätverket för att sedan styra behörigheten till bladen och skippa lösenord. Enklast kanske vore att använda någon typ av befintlig behörighetsstyrning t.ex om användare kommer åt denna mapp i nätverket så visa blad1 om användaren har tillgång till x-mappen visa då blad1 och blad2, om användaren har tillgång till y-mappen visa då blad1, blad2 och blad3 o.s.v 

Förslag två är någon typ av SQL-fråga till en excel-fil där du själv ställer behörighetsnivå beroende nätverksanvändarnannet. 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBABegränsa tillgång mellan olika användare och flikarBegränsa tillgång mellan olika användare och flikar

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter