Исчезновение кнопки! - VBA

Узнай цену своей работы

Формулировка задачи:

Привет! Есть програмка, которая имеет UserForm1 с Label с 1 по 4. При нажатии на label выводит форму UserForm3 с 3 кнопками. При нажатии на любую из них значение, написанное на кнопке возвращает Label на UserForm1 который был нажат. Это реализовано благодоря гуру форумчанам. Пытаюсь теперь сделать так, чтобы при выскакивании формы UserForm3 шла проверка. А есть ли уже где-нибудь подобная надпись, как на кнопках на label формы UserForm1. Если так, то кнопку надо спрятать. Сейчас У меня есть вот такой код:
Листинг программы
  1. Public IG As Integer
  2. Sub ShowDialog()
  3. UserForm1.Show
  4. End Sub
Листинг программы
  1. Option Explicit
  2. Private LabDat(1 To 4) As New ClassCln
  3. Dim i As Integer
  4. Private Sub UserForm_Initialize()
  5. For i = 1 To 4
  6. Set Lab
Листинг программы
  1. Public WithEvents Lab As MSForms.Label
  2. Private Sub Lab_Click()
  3. IG = Mid$(Lab.Name, 6)
  4. Load UserForm3
  5. Dim i As Integer
  6. i = 1
  7. For i = 1 To 4
  8. If UserForm1.Controls("Label" & i) = UserForm3.CommandButton2.Caption Then
  9. UserForm3.Controls("CommandButton2").Visible = False
  10. UserForm3.Controls("CommandButton2").Locked = True
  11. Else
  12. UserForm3.Controls("CommandButton2").Visible = True
  13. UserForm3.Controls("CommandButton2").Locked = False
  14. End If
  15. Next i
  16. UserForm3.Show
  17. End Sub
Листинг программы
  1. Private Sub CommandButton1_Click()
  2. UserForm1.Controls("label" & IG) = CommandButton1.Caption
  3. Me.Hide
  4. End Sub
  5. Private Sub CommandButton2_Click()
  6. UserForm1.Controls("label" & IG) = CommandButton2.Caption
  7. Me.Hide
  8. End Sub
  9. Private Sub CommandButton3_Click()
  10. UserForm1.Controls("label" & IG) = CommandButton3.Caption
  11. Me.Hide
  12. End Sub

Прописал только для одной кнопки CommandButton2 и к сожалению срабатывает только если в Label4 совпадает значение. Подскажите, где ошибка, как оформить правильно?

Решение задачи: «Исчезновение кнопки!»

textual
Листинг программы
  1. Dim i As Integer, j As Integer, k As Integer
  2. For k = 1 To 3
  3.       Controls("CommandButton" & k).Visible = True
  4.       Controls("CommandButton" & k).Locked = False
  5.       Exit For
  6.       Next
  7. 'i = 1'???
  8. For i = 1 To 2
  9.   For j = 1 To 4
  10.     If Controls("CommandButton" & i).Caption = UserForm1.Controls("Label" & j) Then
  11.       Controls("CommandButton" & i).Visible = False
  12.       Controls("CommandButton" & i).Locked = True
  13. '      Else
  14. '     Controls("CommandButton" & i).Visible = True
  15.  '    Controls("CommandButton" & i).Locked = False
  16.    Exit For
  17.     End If
  18.   Next
  19. Next

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы