VBA, Excel

Программирование на Visual Basic for Applications
baranich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 23.08.2005 (Вт) 9:00

VBA, Excel

Сообщение baranich » 16.02.2006 (Чт) 11:02

Добрый день.
Помогите, такой вопросик.
Мне надо сделать так что б при нажатие например на любую ячейку из диапозона B2:V2, появлялось диалоговое окно, которое я создам на VBA.
Т.е окно появляется только при нажатие на определенные ячейки а не на любую ячейку листа...Как это сделать? Заранее спасибо.

$€rg
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 11.01.2006 (Ср) 10:15
Откуда: Санкт-Петербург

Сообщение $€rg » 16.02.2006 (Чт) 15:08

для левой кнопки
Код: Выделить всё
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Range("B2:V2"), Target) Is Nothing Then UserForm1.Show
End Sub

для правой в BeforeDoubleClick cancel поставь, чтоб popup не вылетало
Последний раз редактировалось $€rg 16.02.2006 (Чт) 15:15, всего редактировалось 1 раз.

sergeyvg
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 16.08.2005 (Вт) 9:27

Сообщение sergeyvg » 16.02.2006 (Чт) 15:11

например по двойному клику, правда вход в редактирование для "B2:V2" будет только по <F2>

Код: Выделить всё
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Not Intersect(Target, Range("B2:V2")) Is Nothing Then
    Call UserForm1.Show
    Cancel = True
  End If
End Sub

baranich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 23.08.2005 (Вт) 9:00

Сообщение baranich » 17.02.2006 (Пт) 9:07

спасибо, за помощь.

baranich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 23.08.2005 (Вт) 9:00

Сообщение baranich » 21.02.2006 (Вт) 10:04

Помогите...такя проблемка...
у меня есть на форме textbox, value-значение которого например равно 100, как сохранить измененное значение textboxа, например я ввела 150 и надо чтоб при следующем запуске программы в textboxе было уже 150?
Заранее спасибо

$€rg
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 11.01.2006 (Ср) 10:15
Откуда: Санкт-Петербург

Сообщение $€rg » 21.02.2006 (Вт) 10:22

есть несколько способов
один из них реестр сохраняешь SaveSetting, GetSetting получаешь

baranich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 23.08.2005 (Вт) 9:00

Сообщение baranich » 21.02.2006 (Вт) 10:41

а как это выгледит программно, мне же надо чтоб это сохранялось в программе?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 21.02.2006 (Вт) 10:43

Ну лист скрытый заведи, и пиши в него...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

baranich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 23.08.2005 (Вт) 9:00

Сообщение baranich » 21.02.2006 (Вт) 11:28

спасибо, сделала.

baranich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 23.08.2005 (Вт) 9:00

Сообщение baranich » 03.03.2006 (Пт) 11:32

Вопросик такой.
Можно ли в экселе с помощью vba заблокировать кнопки, чтоб пользователей не мог менять значения, но при выполнения кода программы, ячейки бы заполнялись и изменяли бы свое первоначальное значение?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.03.2006 (Пт) 11:37

Чё б не поискать, а? По форуму.
Ну .Protect UserInterfaceOnly:=true.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

baranich
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 123
Зарегистрирован: 23.08.2005 (Вт) 9:00

Сообщение baranich » 03.03.2006 (Пт) 12:43

спасибочки большое

Слобожанин
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.02.2006 (Вт) 16:00

Сообщение Слобожанин » 14.03.2006 (Вт) 17:56

Может кто подскажет как сделать так, чтобы при изменении какой либо ячейки диапазона, автоматически в указанной ячейке появлялось некая запись.

Например:
При изменении ячейки входящей в диапазон А1:А100, в ячейке В2 отображалась...
...например, дата изменения.

С уважением,
Слобожанин.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.03.2006 (Вт) 18:19

Какие у листа есть события?..
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

$€rg
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 11.01.2006 (Ср) 10:15
Откуда: Санкт-Петербург

Сообщение $€rg » 14.03.2006 (Вт) 18:28

Range("B2") = Date

Слобожанин
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.02.2006 (Вт) 16:00

Сообщение Слобожанин » 14.03.2006 (Вт) 19:19

Уважаемый GSerg, я так понимаю, это события Change и Calculate (при пересчёте результата, сформированного изменяемыми ячейками.
В дальнейшем, надо будет отслеживать и координаты ячеек, в которых были сделаны изменения.

Уважаемый $€rg,
Спасибо.
Я пользовался более универсальной функцией "Now".

С уважением,
Слобожанин.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 102

    TopList