В предыдущих постах помогли с формой с двумя комбобоксами вставляющими значения в ячейки, хочется добавить проверку паролем... то есть при выборе в форме комбо 1 и 2 на листе Списки подставятся значения в G1,G2 и в яч Н2 формулой введется значение соответствующего пароля , а в третьем комбо формы проверялся введенный пароль с тем что в Н2
пример прикладываю
В предыдущих постах помогли с формой с двумя комбобоксами вставляющими значения в ячейки, хочется добавить проверку паролем... то есть при выборе в форме комбо 1 и 2 на листе Списки подставятся значения в G1,G2 и в яч Н2 формулой введется значение соответствующего пароля , а в третьем комбо формы проверялся введенный пароль с тем что в Н2
Nic70y, ну если введен верный- соответствует тому что в яч Н2. то по кнопке ввод запускается какой либо макрос наверно две кнопки нужно будет , первой вводятся значения комбо 1,2 в ячейки и подставляется соответствующий пароль в Н2 а уж потом пароль вводиться в комбо3
Nic70y, ну если введен верный- соответствует тому что в яч Н2. то по кнопке ввод запускается какой либо макрос наверно две кнопки нужно будет , первой вводятся значения комбо 1,2 в ячейки и подставляется соответствующий пароль в Н2 а уж потом пароль вводиться в комбо3Gjlhzl
в яч Н2 формулой введется значение соответствующего пароля
как он может быть не правильным? для чего комбо3?
вдруг правильно: [vba]
Код
Private Sub ComboBox2_Change() a = Application.Match("Пароль " & ComboBox1.Value, Range("a1:k1"), 0) If IsNumeric(a) Then u = Cells(Rows.Count, a).End(xlUp).Row ComboBox3.List = Range(Cells(2, a), Cells(u, a)).Value End If End Sub Private Sub ComboBox3_Change() b = ComboBox3.Value a = Application.Match("Пароль " & ComboBox1.Value, Range("a1:k1"), 0) If IsNumeric(a) Then u = Cells(Rows.Count, a).End(xlUp).Row c = Evaluate("Match(" & b & "," & Cells(1, a).Address & ":" & Cells(u, a).Address & "" & ", 0)") If IsNumeric(c) Then d = Application.Match(ComboBox1.Value, Range("a1:b1"), 0) If IsNumeric(a) Then f = Cells(c, d).Value If f = ComboBox2.Value Then MsgBox "Пароль верный" Else MsgBox "Что Вы тут написали?" End If End If End If End If End Sub
в яч Н2 формулой введется значение соответствующего пароля
как он может быть не правильным? для чего комбо3?
вдруг правильно: [vba]
Код
Private Sub ComboBox2_Change() a = Application.Match("Пароль " & ComboBox1.Value, Range("a1:k1"), 0) If IsNumeric(a) Then u = Cells(Rows.Count, a).End(xlUp).Row ComboBox3.List = Range(Cells(2, a), Cells(u, a)).Value End If End Sub Private Sub ComboBox3_Change() b = ComboBox3.Value a = Application.Match("Пароль " & ComboBox1.Value, Range("a1:k1"), 0) If IsNumeric(a) Then u = Cells(Rows.Count, a).End(xlUp).Row c = Evaluate("Match(" & b & "," & Cells(1, a).Address & ":" & Cells(u, a).Address & "" & ", 0)") If IsNumeric(c) Then d = Application.Match(ComboBox1.Value, Range("a1:b1"), 0) If IsNumeric(a) Then f = Cells(c, d).Value If f = ComboBox2.Value Then MsgBox "Пароль верный" Else MsgBox "Что Вы тут написали?" End If End If End If End If End Sub
Nic70y, весь смысл - открывая файл юзер выбирает в форме группу товаров, потом Продукт таблицу которого хочет получить (по кнопке ввод будет запускаться макрос с запросом PQ на указанный Продукт) при условии если юзер имеет доступ к нему (знает пароль) , для этого и есть комбо3. введя пароль в него и если он соответствует паролю в яч Н2 то по кнопке Ввод выполниться макрос запроса PQ. если пароль не верен форма закроется
Nic70y, весь смысл - открывая файл юзер выбирает в форме группу товаров, потом Продукт таблицу которого хочет получить (по кнопке ввод будет запускаться макрос с запросом PQ на указанный Продукт) при условии если юзер имеет доступ к нему (знает пароль) , для этого и есть комбо3. введя пароль в него и если он соответствует паролю в яч Н2 то по кнопке Ввод выполниться макрос запроса PQ. если пароль не верен форма закроетсяGjlhzl
Сообщение отредактировал Gjlhzl - Понедельник, 13.02.2023, 11:40
Gjlhzl, ввели Вы меня в заблуждение комбобоксом, для ввода, а не выбора можно использовать текстбокс, ну то ладно. так: [vba]
Код
Private Sub CommandButton1_Click() a = ComboBox3.Value b = Range("h2").Text If a = b Then 'здесь действия правильного пароля Worksheets("Список").Range("G1").Value = UserForm1.ComboBox1.Value Worksheets("Список").Range("G2").Value = UserForm1.ComboBox2.Value Else 'здесь действия неправильного пароля End If End Sub
[/vba]надо?
Gjlhzl, ввели Вы меня в заблуждение комбобоксом, для ввода, а не выбора можно использовать текстбокс, ну то ладно. так: [vba]
Код
Private Sub CommandButton1_Click() a = ComboBox3.Value b = Range("h2").Text If a = b Then 'здесь действия правильного пароля Worksheets("Список").Range("G1").Value = UserForm1.ComboBox1.Value Worksheets("Список").Range("G2").Value = UserForm1.ComboBox2.Value Else 'здесь действия неправильного пароля End If End Sub
держите скорей всего, вам надо так, раз у Вас формула [vba]
Код
Private Sub CommandButton1_Click() Worksheets("Список").Range("G1").Value = UserForm1.ComboBox1.Value Worksheets("Список").Range("G2").Value = UserForm1.ComboBox2.Value a = ComboBox3.Value b = Range("h2").Text If a = b Then 'здесь действия правильного пароля Else 'здесь действия неправильного пароля End If End Sub
[/vba]
держите скорей всего, вам надо так, раз у Вас формула [vba]
Код
Private Sub CommandButton1_Click() Worksheets("Список").Range("G1").Value = UserForm1.ComboBox1.Value Worksheets("Список").Range("G2").Value = UserForm1.ComboBox2.Value a = ComboBox3.Value b = Range("h2").Text If a = b Then 'здесь действия правильного пароля Else 'здесь действия неправильного пароля End If End Sub
Nic70y, извините запутал вас наверно.... нужно что бы сначала вводились данные комбо1 и комбо2, после введения комбо2 или по кнопке или автоматически значения комбо 1,2 подставлялись на лист (лист юзер не видит и пароли знает только своего Продукта) по их значениям в яч Н2 отображается соответствующий пароль (формулу прописал в ячейке Н2), его то и проверяем дальше в форме....если юзер не правильный ввел то форма закрывается и доступа нет если правильный то дальше работает макрос запроса PQ и юзеру отображается запрошенный Продукт
Nic70y, извините запутал вас наверно.... нужно что бы сначала вводились данные комбо1 и комбо2, после введения комбо2 или по кнопке или автоматически значения комбо 1,2 подставлялись на лист (лист юзер не видит и пароли знает только своего Продукта) по их значениям в яч Н2 отображается соответствующий пароль (формулу прописал в ячейке Н2), его то и проверяем дальше в форме....если юзер не правильный ввел то форма закрывается и доступа нет если правильный то дальше работает макрос запроса PQ и юзеру отображается запрошенный ПродуктGjlhzl
Private Sub CommandButton1_Click() Worksheets("Список").Range("G1").Value = UserForm1.ComboBox1.Value Worksheets("Список").Range("G2").Value = UserForm1.ComboBox2.Value a = ComboBox3.Value b = Range("h2").Text If a = b Then 'тут макрос дальше Else Unload UserForm1 End If End Sub
[/vba]
[vba]
Код
Private Sub CommandButton1_Click() Worksheets("Список").Range("G1").Value = UserForm1.ComboBox1.Value Worksheets("Список").Range("G2").Value = UserForm1.ComboBox2.Value a = ComboBox3.Value b = Range("h2").Text If a = b Then 'тут макрос дальше Else Unload UserForm1 End If End Sub
Nic70y, спасибо, работает! а по посту ниже про Запрос PQ. может подскажете...есть ли возможность в запросе указать столбец по которому требуется фильтровать задать ячейкой на листе
Nic70y, спасибо, работает! а по посту ниже про Запрос PQ. может подскажете...есть ли возможность в запросе указать столбец по которому требуется фильтровать задать ячейкой на листеGjlhzl