Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/значение в форме зависит от выбранной ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
значение в форме зависит от выбранной ячейки
AKSENOV048 Дата: Среда, 07.09.2011, 14:48 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

Здравствуйте! подскажите что не так. есть форма которая вызывается при выборе ячейки в столбце "B", в форме два textbox в которых выводятся два значения: выбранной ячейки и ячейки справа от выбранной.
форма со значением ShowModal = False. как сделать чтобы меняя выбор ячеек на листе в форме также сразу менялись значения textbox`ов.

вот код запуска формы(в модуле листа):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Row < 3 Then Exit Sub
If Target.Cells.Count > 2 Then Exit Sub
If Len(Trim(Target.Value)) = 0 Then
End If
UserForm1.Show
End Sub

и код в форме:
Private Sub UserForm_Initialize()
Me.TextBox1 = ActiveCell.Value
Me.TextBox2 = ActiveCell.Offset(, 1).Value
End Sub
К сообщению приложен файл: 3333575.xls (30.0 Kb)


Сообщение отредактировал AKSENOV048 - Среда, 07.09.2011, 14:51
 
Ответить
СообщениеЗдравствуйте! подскажите что не так. есть форма которая вызывается при выборе ячейки в столбце "B", в форме два textbox в которых выводятся два значения: выбранной ячейки и ячейки справа от выбранной.
форма со значением ShowModal = False. как сделать чтобы меняя выбор ячеек на листе в форме также сразу менялись значения textbox`ов.

вот код запуска формы(в модуле листа):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
If Target.Row < 3 Then Exit Sub
If Target.Cells.Count > 2 Then Exit Sub
If Len(Trim(Target.Value)) = 0 Then
End If
UserForm1.Show
End Sub

и код в форме:
Private Sub UserForm_Initialize()
Me.TextBox1 = ActiveCell.Value
Me.TextBox2 = ActiveCell.Offset(, 1).Value
End Sub

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 14:48
_Boroda_ Дата: Среда, 07.09.2011, 15:32 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Можно так:
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Target.Column <> 2 Then Exit Sub
      If Target.Row < 3 Then Exit Sub
      If Target.Cells.Count > 2 Then Exit Sub
      l = Len(Trim(Target.Value))
      If Len(Trim(Target.Value)) = 0 Then
      End If
      UserForm1.TextBox1 = ActiveCell.Value
      UserForm1.TextBox2 = ActiveCell.Offset(, 1).Value
      UserForm1.Show
End Sub


Чтобы не преписывать, можно так:
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Target.Column <> 2 Then Exit Sub
       If Target.Row < 3 Then Exit Sub
       If Target.Cells.Count > 1 Then Exit Sub
       If Len(Trim(Target.Value)) = 0 Then Exit Sub
       Unload UserForm1
       UserForm1.Show
End Sub


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМожно так:
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      If Target.Column <> 2 Then Exit Sub
      If Target.Row < 3 Then Exit Sub
      If Target.Cells.Count > 2 Then Exit Sub
      l = Len(Trim(Target.Value))
      If Len(Trim(Target.Value)) = 0 Then
      End If
      UserForm1.TextBox1 = ActiveCell.Value
      UserForm1.TextBox2 = ActiveCell.Offset(, 1).Value
      UserForm1.Show
End Sub


Чтобы не преписывать, можно так:
Code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Target.Column <> 2 Then Exit Sub
       If Target.Row < 3 Then Exit Sub
       If Target.Cells.Count > 1 Then Exit Sub
       If Len(Trim(Target.Value)) = 0 Then Exit Sub
       Unload UserForm1
       UserForm1.Show
End Sub

Автор - _Boroda_
Дата добавления - 07.09.2011 в 15:32
AKSENOV048 Дата: Среда, 07.09.2011, 15:42 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

Большое Спасибо можно и так! правда придется много переписать в своем файле, т.к TextBox значительно больше.
а нет еще вариантов?
 
Ответить
СообщениеБольшое Спасибо можно и так! правда придется много переписать в своем файле, т.к TextBox значительно больше.
а нет еще вариантов?

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 15:42
AKSENOV048 Дата: Среда, 07.09.2011, 15:46 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

а как можно сделать чтобы фокус сразу не переводился на форму?
 
Ответить
Сообщениеа как можно сделать чтобы фокус сразу не переводился на форму?

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 15:46
nilem Дата: Среда, 07.09.2011, 17:09 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Quote (AKSENOV048)
а нет еще вариантов?

Вариантов есть. Только отображение формы и изменение текстбоксов желательно поместить в разные события, иначе форма дергается.
Вот примерчик: двойной клик в ячейках показывает форму, изменение выделения изменяет текстбоксы.
К сообщению приложен файл: _3333575.xls (54.5 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение
Quote (AKSENOV048)
а нет еще вариантов?

Вариантов есть. Только отображение формы и изменение текстбоксов желательно поместить в разные события, иначе форма дергается.
Вот примерчик: двойной клик в ячейках показывает форму, изменение выделения изменяет текстбоксы.

Автор - nilem
Дата добавления - 07.09.2011 в 17:09
AKSENOV048 Дата: Среда, 07.09.2011, 22:10 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 134
Репутация: 6 ±
Замечаний: 0% ±

_Boroda_, nilem, спасибо! я уже переписал первый вариант, не очень много на самом деле надо было переписать, всего около 60 строк! Спасибо большое за помощь!
как все таки можно сделать чтобы фокус не переводился на форму? (чтобы можно было скролить лист)
пока писал, проверил еще раз первый вариант, оказывается не все переписал, оставлю наверно вариант с Unload и Show!
 
Ответить
Сообщение_Boroda_, nilem, спасибо! я уже переписал первый вариант, не очень много на самом деле надо было переписать, всего около 60 строк! Спасибо большое за помощь!
как все таки можно сделать чтобы фокус не переводился на форму? (чтобы можно было скролить лист)
пока писал, проверил еще раз первый вариант, оказывается не все переписал, оставлю наверно вариант с Unload и Show!

Автор - AKSENOV048
Дата добавления - 07.09.2011 в 22:10
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!