Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 75290 Skopiuj do schowka 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 Skopiuj do schowka
 
 
minijack 
ExcelSpec


Pomógł: 176 razy
Posty: 402
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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 
Tajan


Pomógł: 5407 razy
Posty: 11795
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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 
ple4
ExcelSpec


Wersja: Win Office 2003
Pomógł: 102 razy
Posty: 450
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 340 raz(y) 8.52 KB

ID posta: 431705 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 
minijack 
ExcelSpec


Pomógł: 176 razy
Posty: 402
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 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

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