ID tematu: 75290
 |
Panel logowania |
Autor |
Wiadomość |
Borsuk0982
Forumowicz

Wersja: Win Office 2010
Posty: 21
|
Wysłany: 29-11-2023, 11:21 Panel logowania
|
|
|
Witam proszę o pomoc. Stworzyłem panel do logowania do excela, niestety działa mi tylko na jeden login i przypisane do niego hasło a chciałbym żeby każdy użytkownik mógł się zalogować własnym loginem i przypisanym do niego hasłem czyli:
A. B
1 Login. Hasło
2 Admin. 123
3 Kowal. 456
4 Kruk. 789
5 Mag. 987
6 Kwiat. 654
Poniżej moje makro które jak pisałem działa tylko na jednego użytkownika i jego hasło. Proszę o podpowiedź co dodać lub jak zmienić żeby każdy mógł się swoim loginem i hasłem zalogować.
Kod: | Private Sub zalogój_Click()
Dom sUser As Stringi, sPassword As Stringi
sUser = User.Text
sPassword = Password.Text
Od sUser = Arkusze.Range("A2").Value And _
s Password = Arkusze.Range("B2").Value Then
Unload Logowanie
Else
MsgBox "Niepoprawne dane logowania." _
, vbOKOnly
User.Text = ""
Password.Text = ""
End If
End Sub
----------------------------------------------------------
Private Sub Zamknij_Click()
Unload Logowanie
Application.DisplayAlerts = False
ThisWorkbook.Close saveChangers: = False
End Sub
-------------------------------------------------------------
Private Sub UserFrom_QueryClose(Cancel As Integer, CloseMode As Integer)
If Closode = vbFromControlMenu Then
Cancel = True
MsgBox "Skorzystaj z przycisku Zamknij", vbOKOnly
End If
End Sub |
|
|
 | ID posta:
431668
|
|
|
 |
|
|
|
minijack
ExcelSpec

Wersja: Win Office 2019
Pomógł: 225 razy Posty: 510
|
Wysłany: 29-11-2023, 12:22
|
|
|
można przelecieć pętlą po danych logowania
np Kod: |
Private Sub zalogój_Click()
Dim sUser As String, sPassword As String
Dim i, sukces
sUser = user.Text
sPassword = Password.Text
sukces = 0
For i = 2 To 10
If sUser = Cells(i, "A").Value And sPassword = Cells(i, 2).Value Then
sukces = 1
Exit For
End If
Next i
If sukces = 1 Then
Unload Logowanie
Else
MsgBox "Niepoprawne dane logowania.", vbOKOnly
user.Text = ""
Password.Text = ""
End If
End Sub |
|
|
 | ID posta:
431676
|
|
|
 |
|
|
Borsuk0982
Forumowicz

Wersja: Win Office 2010
Posty: 21
|
Wysłany: 29-11-2023, 14:34
|
|
|
Dzięki ale coś mi nie działa wyświetla błąd.
Próbowalem też zdublować zmieniając ("A2") na ("A3") itd. oraz ("B2") na ("B3") itd.. Niby działa ale tylko na ostatnim ok na wcześniejszych wyskakuje po zalogowaniu właśnie opis o nieprawidłowych danych logowania ale jest się zalogowanym.
Więc prośba o pomoc nadal qktualna |
|
 | ID posta:
431689
|
|
|
 |
|
|
Tajan

Pomógł: 5583 razy Posty: 12105
|
Wysłany: 29-11-2023, 14:39
|
|
|
Załącz przykładowy plik bo coś mieszasz. W makrze które zaproponował minijack żadne "A2" czy "B2" nie jest potrzebne. |
|
 | ID posta:
431690
|
|
|
 |
|
|
Borsuk0982
Forumowicz

Wersja: Win Office 2010
Posty: 21
|
Wysłany: 29-11-2023, 17:12
|
|
|
Ok już udało sie jednak podpowiedź była trafna tylko moje umiejętności są troszkę słabe.
WIELKIE DZIĘKI ZA POMOC.
A może ktoś ma jakiś dobry pomysł jak założyć własnie takie hasło ale w sposób żeby jednym osobą dawało dostęp tylko do odczytu pliku a innym również do edycji?
Zdaję sobie sprawę że dla was może być to banalne i śmieszne ale ja dopiero stawiam kroczki w excelu. |
|
 | ID posta:
431700
|
|
|
 |
|
|
ple4
ExcelSpec

Wersja: Win Office 2003
Pomógł: 143 razy Posty: 545
|
Wysłany: 29-11-2023, 19:51
|
|
|
... ale na jakim "poziomie" (?):
1) otwieranego dopiero co pliku ?
2) arkuszy i/lub obszarów arkusza(-y) w otwartym już pliku ?
Nie wiadomo z opisu.
Jeśli ma to być w otwartym już pliku, to można np. według takiej konstrukcji:
Kod: | Option Explicit
Private apms As String
Private Sub UserForm_Initialize()
With UserForm1
.Caption = "Lo Gin i Wódka"
.TextBox2.PasswordChar = "*"
.CommandButton1.Caption = "Loguj"
.CommandButton2.Caption = "Zamknij"
End With
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then Cancel = 1: MsgBox "Skorzystaj z przycisku 'Zamknij'", vbOKOnly
End Sub
Private Sub CommandButton1_Click()
Dim b As Range, n, p As String, u As String
u = UserForm1.TextBox1.Value
p = UserForm1.TextBox2.Value
If Len(Trim(u)) = 0 Or Len(Trim(p)) = 0 Then MsgBox "Nie podano danych logowania": Exit Sub
Set b = Arkusz2.Range("A1").CurrentRegion
n = Application.Match(u, b.Columns(1), 0)
If IsError(n) Then MsgBox "Brak 'takiego' loginu użytkownika": GoTo te
If p <> b.Columns(2).Cells(n).Value Then
With UserForm1.TextBox2
.SetFocus: .SelStart = 0: .SelLength = .TextLength
End With
MsgBox "Hasło użytkownika do 'D'": Exit Sub
End If
apms = b.Columns(3).Cells(n).Value
closets_run
te: Set b = Nothing
End Sub
Private Sub CommandButton2_Click()
closets_run
End Sub
Private Sub closets_run()
UserForm1.Hide
Unload UserForm1
End Sub |
Po prawidłowym "logowaniu" otrzymujemy zmienną 'apms' z "identyfikatorem" uprawnień do wykorzystania w innych makrach - dane w dodatkowej kolumnie bazy uprawnień (wg obrazka).
Ps.: Panowie ... "..uj(e)" się k... nie kreskuje .... łeeee ....
.
.
.
apb.jpg
|
 |
Plik ściągnięto 648 raz(y) 8.52 KB |
|
|
 | ID posta:
431705
|
|
|
 |
|
|
Borsuk0982
Forumowicz

Wersja: Win Office 2010
Posty: 21
|
Wysłany: 29-11-2023, 21:48
|
|
|
Chodzi na poziomie otwieranego pliku w którym jest kilkanaście arkuszy. Żeby po wpisaniu swojego loginu i hasła jedna osoba miała dostęp do wszystkiego z edycją a inna tylko do przeglądania. Jest tylko jeden warunek na pierwszej stronie są odnośniki do arkuszy ukrytych do których kierują i te by musiały działać dla każdego użytkownika. |
|
 | ID posta:
431708
|
|
|
 |
|
|
Borsuk0982
Forumowicz

Wersja: Win Office 2010
Posty: 21
|
Wysłany: 30-11-2023, 10:32
|
|
|
Kolego mimijack mam pytanie odnośnie co i gdzie wpisać aby ten kodzik działał z konkretnym arkuszem np arkuszem01. Bo kod fajnie działa o ile jest tylko jeden arkusz. Kiedy chciałem go dodać do excela w którym mam kilkanaście arkuszy nie idzie. |
|
 | ID posta:
431723
|
|
|
 |
|
|
Borsuk0982
Forumowicz

Wersja: Win Office 2010
Posty: 21
|
Wysłany: 30-11-2023, 11:17
|
|
|
Jeszcze zauważyłem że naciskając od razu zamknij nie zamyka pliku |
|
 | ID posta:
431727
|
|
|
 |
|
|
minijack
ExcelSpec

Wersja: Win Office 2019
Pomógł: 225 razy Posty: 510
|
Wysłany: 04-12-2023, 09:38
|
|
|
niestety brak załącznika
żeby dane były pobierane z konkretnego arkusza trzeba
to Kod: | If sUser = Cells(i, "A").Value And sPassword = Cells(i, 2).Value Then |
zamienić na(nazwe arkusza sobie zmień )
Kod: | If sUser = sheets("arkusz1").Cells(i, "A").Value And sPassword = sheets("arkusz1").Cells(i, 2).Value Then |
|
|
 | ID posta:
431826
|
|
|
 |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
|
Strona uĹźywa plikĂłw cookies.
Kliknij tutaj, Ĺźeby dowiedzieÄ siÄ jaki jest cel uĹźywania cookies oraz jak zmieniÄ ustawienia cookie w przeglďż˝darce.
KorzystajÄ
c ze strony uĹźytkownik wyraĹźa zgodÄ na uĹźywanie plikĂłw cookies, zgodnie z bieĹźÄ
cymi ustawieniami przeglÄ
darki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe
|