Тема: Как связать CheckBox с ячейкой?

Народ, ПоМоГиТе!
Задание звучит так:
Свяжите Флажок(CheckBox1)  с ячейкой A1 рабочего листа.
Установите свойство TripleStat=True. При этом у флажка появится 3-е состояние – нейтральное (Null).(по умолчанию у флажка 2 состояния и свойство TripleState=False)
При нажатии кнопок с соответствующими программными кодами(устанавливающими свойство velue в 1,0, True,False,Null) в ячейке А1 должно отображаться текущее значение CheckBox, т.е соответственно  1,0, True,False,Null.
На сколько поняла, для связи ячейки с флажком должен быть отдельный код. Помогите найти правильное решение проблемы.
Здесь код для кнопок, при нажатии на котор меняется значение свойства Velue. Еще нужно, чтобы при нажатии на другие кнопки в ячейку связи вводилось 1,0, True,False,Null

Private Sub CommandButton1_Click()
CheckBox1.Value = 1
Range("A1").Value = CheckBox1.Value
End Sub
Private Sub CommandButton2_Click()
CheckBox1.Value = 0
Range("A1").Value = CheckBox1.Value
End Sub
Private Sub CommandButton3_Click()
CheckBox1.Value = True
Range("A1").Value = CheckBox1.Value
End Sub
Private Sub CommandButton4_Click()
CheckBox1.Value = False
Range("A1").Value = CheckBox1.Value
End Sub
Private Sub CommandButton5_Click()
CheckBox1.Value = Null
Range("A1").Value = CheckBox1.Value
End Sub

Если записать так, то в ячейке А1 появляются значения ИСТИНА и ЛОЖЬ, а надо 1,0, True,False,Null.

Re: Как связать CheckBox с ячейкой?

Ну надо так надо.... Кто ж мешает так написать?

Private Sub CommandButton1_Click()
CheckBox1.Value = 1
Range("A1").Value = 1
End Sub
Private Sub CommandButton2_Click()
CheckBox1.Value = 0
Range("A1").Value = 0
End Sub
Private Sub CommandButton3_Click()
CheckBox1.Value = True
Range("A1").Value = "True"
End Sub
Private Sub CommandButton4_Click()
CheckBox1.Value = False
Range("A1").Value = "False"
End Sub
Private Sub CommandButton5_Click()
CheckBox1.Value = Null
Range("A1").Value = "Null"
End Sub

;)

Re: Как связать CheckBox с ячейкой?

Ишшо вот... так на всякий случай....
ИСТИНА === True === 1
ЛОЖЬ === False === 0

Re: Как связать CheckBox с ячейкой?

> VK
дык, задание то звучит: свяжите флажок с ячейкой А1, а уж затем нажатием кнопок меняем значение Value. При этом значение в ячейке меняется соттветственно значенью Value

Re: Как связать CheckBox с ячейкой?

> Mypppka
Вы писали:

Народ, ПоМоГиТе!

а не "решите за меня задачу", как довольно часто пишут. К тому же, задача как таковая поставлена не совсем корректно.
Далее, Вы описали свою проблему

Если записать так, то в ячейке А1 появляются значения ИСТИНА и ЛОЖЬ, а надо 1,0, True,False,Null.

Код, приведенный выше, эту проблему решает? ;)
Теперь, давайте уточним, какая (или какие) именно связь требуется?
-- нажимаем одну из кнопок - в результате флажок  принимает нужное состояние, а в ячейке отображается так как вы хотите (решение есть);
-- переключаем флажок мышом - в ячейке отображается одно из трех состояний флажка (какими тремя из пяти символами они должны быть отображены, пока не понятно);
-- вводим в ячейку текст (ИСТИНА, True, 1, ЛОЖЬ, False, 0, Null, -1) - флажок меняет свое состояние в соотв. со значением в ячейке;
-- вводим в ячейку абракадабру (не являющуюся состоянием флажка) - флажок что делает???? ;)
Так что, будьте любезны, изложите полностью условия задачи, а то дежурный телепат в бессрочном отпуску :)

Re: Как связать CheckBox с ячейкой?

вдогонку к связям:
-- меняем состояние флажка или значение ячейки программно (другим макросом) - что должно произойти?

Re: Как связать CheckBox с ячейкой?

Как один из вариантов, докиньте в начале вот это

Private flag As Boolean
Private Sub UserForm_Initialize()
  flag = False
  Range("A1").NumberFormat = "@"
  With CheckBox1
    Select Case Range("A1").Value
      Case "true", True, 1, "истина"
        .Value = True
      Case 0, False, "false", "ложь"
        .Value = False
      Case Else
        .Value = Null
    End Select
  End With
  flag = True
End Sub
Private Sub CheckBox1_Change()
  If flag Then
    With Range("A1")
      Select Case CheckBox1.Value
        Case False
          .Value = "False"
        Case True
          .Value = "True"
        Case Else
          .Value = "Null"
      End Select
    End With
  End If
End Sub

Re: Как связать CheckBox с ячейкой?

> VK
я отправила на ваш ящик формулировку задачи, если не трудно, взгляните плzzz :)

Re: Как связать CheckBox с ячейкой?

Хренасе, формулировочка, подумал я, взглянув на размерчик прилагаемого файла :)))
На будущее, если уж лень перепечатать текст буква в букву, то jpg тем более зиповать совсем не обязательно - не жмется он почти что... Гораздо эффективнее из фотошопа уменьшить разрешение и сделать "Save for web", подобрав коэффициент сжатия...
Ладно, это не главное, взглянул... И даже перечитал дважды. Теперь скажите, где Вы обнаружили в этой методичке то, что натолкнуло Вас на эту проблему?

в ячейке А1 появляются значения ИСТИНА и ЛОЖЬ, а надо 1,0, True,False,Null.

Укажите плиз хотя бы страницу и строку...

Re: Как связать CheckBox с ячейкой?

> VK
на самом рисунке, если приглядеться, в ячейке А1 стоит "1". судя по прошлым
лабам, так и должно быть в реальности....

Re: Как связать CheckBox с ячейкой?

> Mypppka
Еще можно маленький вопросик?
Надо написать макрос, кот бы производил заполнение списка(ListBox) пятью фамилиями, используя свойство List, и связать с кнопкой.
Вот написала:

Private Sub CommandButton3_Click()
ListBox1.List = "Сидоров"
ListBox1.List = "Петров"
ListBox1.List = "Иванов"
ListBox1.List = "Васичкин"
ListBox1.List = "Веснушкин"
End Sub

А комп плюется, говорит, не правильно
Че не так?
Спасиб заранее:)

Re: Как связать CheckBox с ячейкой?

....
  Me.ListBox1.AddItem ("Иванов")
  Me.ListBox1.AddItem ("Петров")
  Me.ListBox1.AddItem ("Сидоров")
.....

Re: Как связать CheckBox с ячейкой?

или так, чтоб меньше писать

  With Me.ListBox1
    .AddItem ("Иванов")
    .AddItem ("Петров")
    .AddItem ("Сидоров")
  End With

или вот так

Private Sub CommandButton1_Click()
  Dim listOfNames As Variant
  Dim oneName
  listOfNames = Array("Иванов", "Петров", "Сидоров")
  For Each oneName In listOfNames
    Me.ListBox1.AddItem (oneName)
  Next
End Sub

Кстати, если кнопку потыкать несколько раз, то список будет расти... Очищать не надо чтоль? ;)

Re: Как связать CheckBox с ячейкой?

> VK
Тут уж задание четко звучит : строго с использованием свойства List, а так у меня в учебнике написано :)
Может есть варианты именно с этим свойством :)?
А по поводу первой задачи, так уж и быть, убедили. Надеюсь, препод примет..

Re: Как связать CheckBox с ячейкой?

Не вопрос

Private Sub CommandButton6_Click()
  Dim listOfNames As Variant
  listOfNames = Array("Иванов", "Петров", "Сидоров")
  Me.ListBox1.List() = listOfNames
End Sub

Кстати, пример добросовестно содран из Екселевского хелпа, с небольшой модификацией, разумеется  :)))
И кто из нас диплом получать будет? ;)

Re: Как связать CheckBox с ячейкой?

> VK
Стыдно, но не всем же быть великими программистами ;)

Re: Как связать CheckBox с ячейкой?

> Mypppka
есть еще такое:
Какой солдат не мечтает стать генералом...
;)

Re: Как связать CheckBox с ячейкой?

> VK
Ну, мечтают все, только некоторые вовремя на землю спускаются )
вот, скока сижу над этими листбоксами все как-то туго идет...
Еще один вопрос есть(или даже два):
Есть 2 текст поля ("поле номера" и "поле имени"), в одно заводится номер элемента, в другое имя. Надо создать такую процедуру, кот записывала фамилии из "поля имени" в список ListBox, при чем вводимая в список фамилия должна расположиться после той фамилии, которая имеет порядковый номер в списке, введенный вами в поле ввода "поле номера"
Что-то наподобие с удалением нескольких элементов из списка, только там в текст поле записывается, скока удалено и в другое -имя элемента, с которого началось удаление..

Re: Как связать CheckBox с ячейкой?

> Mypppka
Проверьте у Вас наверно кнопка F1 перестала работать :)

.AddItem [ item [, varIndex]]

varIndex Optional. Отвечает за позицию вставки.

Re: Как связать CheckBox с ячейкой?

> SmeL
:))