| 
	
 | 
 
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     combobox... 
 | 
 
 |  
| Автор | 
drosg (новак) |  
| Публикувано | 11.01.11 16:52 |  
             |  
           | 
            
           
  Здравейте и за много години !
 
 Да попитам едно въпросче, защо когато стартирам кода ,все ми изписва грешна парола, каде бъркам ?
 Прилагам въпросния код
 Private Sub CommandButton1_Click()
     'дефинира променлива за брояч
 For j = 1 To 15
 If ComboBox1.Value = Sheets("оператори").Cells(j, 2) And TextBox2.Text = Sheets("оператори").Cells(j, 1) Then
              UserForm2.Hide
              Else
          MsgBox "Грешна парола!", vbCritical, "Грешна парола!": Exit Sub
    End If
    Next j
 End Sub
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: combobox... 
[re: drosg]
 | 
 
 |  
| Автор | 
Бypaн (ентусиаст) |  
| Публикувано | 12.01.11 10:49 |  
             |  
           | 
            
           
  Изписва ти съобщението, защото правиш проверката вътре в цикъла и затова дори при верен потребител и парола, ще ти изведе съобщението 14 пъти.
 По-добрия вариант е да си вземеш номера на реда от индекса на комбо-бокса и да си провериш само за този потребител. Разбира се приемам, че стойностите в комбобокса са попълнени последователно от колона B на лист оператори.
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     едно уточнение... 
[re: drosg]
 | 
 
 |  
| Автор | 
Бypaн (ентусиаст) |  
| Публикувано | 12.01.11 10:53 |  
             |  
           | 
            
           
  Имай предвид, че индекса на комбобокса започва от 0, т.е. трябва да предвидиш отместване с 1.
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: едно уточнение...
[re: Бypaн]
 | 
 
 |  
| Автор | 
drosg (новак) |  
| Публикувано | 12.01.11 17:34 |  
             |  
           | 
            
           
  Здр Буран !
 Не ми е ясно как да взема номера на реда според индекса от комбобокса.
 Да споделя казуса по-подробно !
  В форма съм поставил един комбобок и един текстбокс .От комбобокса избирам имена на потребители, които между впрочем се съхраняват в лист "оператори" в колона А1:А7 , а в текстбокса въвеждам паролата, която е присвоена на избрания потребител. Паролите се съхраняват в същия лист но в колона В1:В7. Примерно на  потребител ААА е присвоена паролата 111.
 Как да направя проверка дали избраният потребител от комбобокса и въведената парола съюествуват в листа и дали  въведената парола отговаря на избрания потребител. 
 Дано съм се изразил ясно....
 БЛАГОДАРЯ
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: едно уточнение... 
[re: drosg]
 | 
 
 |  
| Автор | 
Бypaн (ентусиаст) |  
| Публикувано | 12.01.11 20:46 |  
             |  
           | 
            
           
  Private Sub CommandButton1_Click()
 
 If ComboBox1.Value = Sheets("оператори").Cells(ComboBox1.ListIndex+1, 2) And TextBox2.Text = Sheets("оператори").Cells(ComboBox1.ListIndex+1, 1) Then
 UserForm2.Hide
 Else
 MsgBox "Грешна парола!", vbCritical, "Грешна парола!": Exit Sub
 End If
 
 End Sub
 
 и пак казвам - това при условие, че комбото е попълнено последователно (потребителя на първия ред е първи в списъка на комбото, потребителя на втория ред - втори в списъка  и т.н.)..
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: едно уточнение... 
[re: Бypaн]
 | 
 
 |  
| Автор | 
drosg (новак) |  
| Публикувано | 12.01.11 23:03 |  
             |  
           | 
            
           
  Да точно така е попълнен комбобокса, както и в шийта, тъкато комбото взима данните чрез този код :
 
 Private Sub UserForm_Activate()
 Dim i As Integer
 Dim z As Integer
      'Дефиниране на променлива за брояча
     Dim Row As Long
     'Установяване на брояча на първия ред от данните
     Row = 1
     'Изчистване на стари данни в комбо-бокса
 UserForm2.ComboBox1.Clear
            'Стартиране на цикъл, който се повтаря, докато има
     'данни в реда, на който е установен брояча
     Do While Worksheets("оператори").Range("B" & Row) <> ""
         'Прехвърляне на данните от таблицата в комбо-бокса
             
                             UserForm2.ComboBox1.AddItem (Worksheets("оператори").Range("B" & Row))
 
         'Увеличаване на брояча с 1-ца
         Row = Row + 1
     Loop
 
 End Sub
 
 
 Поставям този код за да видиш от каде взимам данните за комбото
 А иначе за кода ами все същото пак така ми изписва грешна парола ...незная защо така
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: едно уточнение... 
[re: drosg]
 | 
 
 |  
| Автор | 
drosg (новак) |  
| Публикувано | 14.01.11 14:53 |  
             |  
           | 
            
           
  Здравей Буран , благодаря ти за отзивчивостта, преписах кода кйто си ми написал, но пак ми дава грешна парола. Аз ли съм збъркал някаде ?
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: едно уточнение... 
[re: drosg]
 | 
 
 |  
| Автор | 
Бypaн (ентусиаст) |  
| Публикувано | 14.01.11 15:16 |  
             |  
           | 
            
           
  лично аз не мога да видя проблем. Едва ли е толкова трудно да си дебъгнеш кода и да видиш какво точно не става както трябва. Става дума за 5 ред код
  
           
  
             |   |  
  |   
 
 
 |  
 |   
 |