Excel по двойному щелчку на ячейку

 

Delux

Пользователь

Сообщений: 138
Регистрация: 03.11.2014

#1

02.11.2020 19:32:05

Здравствуйте, подскажите мне пожалуйста. Как запустить форму двойным щелчком по любой ячейки из столбца «B:B», и перейти в вызванную форму. Я в модуле листа сделала так

Код
Private Sub
Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not
Intersect(Target, Range("C:C")) Is Nothing And Target.Columns.Count =
1 Then
        Call Userform1
            Userform1
                .TextBox2 = ActiveCell.Offset(0, 0) 'Наименование
                .TextBox1 = ActiveCell.Offset(0, -1) '№ п/п
                .TextBox3 = ActiveCell.Offset(0, 3) 'Положение                
            End With
        End If
End Sub

И теперь, надо выйти из ячейки и перейти в форму. А как чтобы сразу переходить в форму

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#2

02.11.2020 19:37:14

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  if target.column = 2 then cancel = true: Userform1.show
End Sub

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Delux

Пользователь

Сообщений: 138
Регистрация: 03.11.2014

#3

02.11.2020 19:51:23

Правильно сделал?

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  if target.column = 2 then cancel = true: Userform1.show

                .TextBox2 = ActiveCell.Offset(0, 0) 'Наименование
                .TextBox1 = ActiveCell.Offset(0, -1) '№ п/п
                .TextBox3 = ActiveCell.Offset(0, 3) 'Положение                
            End With
        End If
End Sub

ругается и выбрасывает в VBA

 

buchlotnik

Пользователь

Сообщений: 3863
Регистрация: 31.10.2014

Excel 365 Бета-канал

#4

02.11.2020 19:55:30

Цитата
Delux написал:
Правильно сделал?

нет, вот это

Код
.TextBox2 = ActiveCell.Offset(0, 0) 'Наименование
                .TextBox1 = ActiveCell.Offset(0, -1) '№ п/п
                .TextBox3 = ActiveCell.Offset(0, 3) 'Положение                
            End With

к чему относится, где начинается With? и вообще почему передаете в форму значения отсюда, а не в userform_activate?

Изменено: buchlotnik02.11.2020 19:56:54

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#5

02.11.2020 19:58:29

Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  if target.column = 2 then 
    cancel = true
    with Userform1
      .TextBox2 = target 'Наименование
      .TextBox1 = target.Offset(0, -1) '№ п/п
      .TextBox3 = target.Offset(0, 3) 'Положение
      .show                
     End With
  End If
End Sub

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Delux

Пользователь

Сообщений: 138
Регистрация: 03.11.2014

Всё равно ругается, модуль  в «Лист1»

Прикрепленные файлы

  • 1201.xlsm (18.74 КБ)

 

buchlotnik

Пользователь

Сообщений: 3863
Регистрация: 31.10.2014

Excel 365 Бета-канал

#7

02.11.2020 20:25:16

Цитата
Delux написал:
Всё равно ругается

а ничего, что на userform в вашем файле нет ни одного текстбокса?

Изменено: buchlotnik02.11.2020 20:26:15

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

см. сообщение #2 — оно сработает

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Delux

Пользователь

Сообщений: 138
Регистрация: 03.11.2014

#9

02.11.2020 20:32:39

Цитата
Ігор Гончаренко написал:
см. сообщение #2 — оно сработает

Дак мне надо как-то под мою задачу, это приладить. Попытался, выдало ошибку см. сообщение #3

 

buchlotnik

Пользователь

Сообщений: 3863
Регистрация: 31.10.2014

Excel 365 Бета-канал

#10

02.11.2020 20:38:59

Цитата
Delux написал:
выдало ошибку

причина в сообщении #7

Соблюдение правил форума не освобождает от модераторского произвола
<#0>

 

Delux

Пользователь

Сообщений: 138
Регистрация: 03.11.2014

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#12

06.11.2020 11:40:57

оперативно (не прошло и 5 дней)

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

Обычно мы дважды щелкаем по ячейке, чтобы редактировать содержимое ячейки, однако курсор перескакивает в конец данных рабочего листа, поскольку вы можете случайно щелкнуть границу ячейки, как показано на следующем снимке экрана. Это может раздражать, если есть несколько строк, вам следует прокрутить до ячейки, по которой щелкнули мышью. В этой статье я расскажу о том, как отключить двойной щелчок по границе ячейки в Excel.

документ отключить двойной щелчок 1

Отключите двойной щелчок по границе ячейки, чтобы перейти вниз


стрелка синий правый пузырь Отключите двойной щелчок по границе ячейки, чтобы перейти вниз

Чтобы отключить функцию двойного щелчка по границе ячейки, вы можете перейти в Параметры Excel, чтобы настроить параметр, сделайте следующее:

1. Нажмите Файл > Опции , чтобы перейти к Параметры Excel диалоговое окно.

2. В Параметры Excel диалоговое окно, нажмите Дополнительно на левой панели, а затем снимите флажок Включить маркер заполнения и перетаскивание ячейки вариант под Редактирование варианты, см. снимок экрана:

документ отключить двойной щелчок 2

3. Затем нажмите OK чтобы закрыть это диалоговое окно, и теперь функция двойного щелчка по границе ячейки сразу отключается.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (22)


Номинальный 5 из 5


·


рейтинги 1

Input a check mark into a cell in Excel by double-clicking the cell or by typing a letter into it.

This tutorial shows you two ways to input the check mark because you might want to use the mouse to input or remove the check mark or quickly key through a list and type a sinlge letter to input the check mark.

There are many ways to perform this trick in Excel, but, here, I will show you one of the easier ways to do it, which combines a custom font and a macro.

Custom Font

Font to use: Marlett

Letter to input to make the check-mark: a

Macro for the Double-Click

Right-click the sheet where you want to have this trick work and click View Code and paste the code from here.

B3:B6 change this to the range of cells that should be able to get a check mark when they are double-clicked.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' Add/Remove a Check Mark from a Cell
'
' Made by: https://www.TeachExcel.com
'
' Excel Courses: https://www.teachexcel.com/premium-courses/?src=tut_id_2444
 
    If Not Intersect(Target, Range("B3:B6")) Is Nothing Then
    
        Target.Font.Name = "Marlett"
    
        If Target.Value = "a" Then
            
            Target.Value = ""
            
        Else
        
            Target.Value = "a"
        
        End If
        
        Cancel = True
    
    End If
    
End Sub

Additional Resources

Microsoft Doc to Insert a check mark symbol

Worksheet.BeforeDoubleClick event (Excel)


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Link to Cells on Other Worksheets in Excel

Tutorial: It is very easy to link one cell to another cell in Microsoft Excel. The steps needed are …

3 Methods to Remove Spaces Between Text in Excel

Tutorial:
How to remove spaces from the middle of text in Excel.  This includes removing all space…

How to Input, Edit, and manage Formulas and Functions in Excel

Tutorial: In this tutorial I am going to introduce how to input, edit and manage excel formulas. To …

Enter Text/Characters with a Double-Click of the Mouse

Macro: This macro allows you to enter any text or number, that you specify, in a cell on whic…

How to Add Formatting to Cells and Data in Excel Styles, Fonts, Colors, & More

Tutorial: In this tutorial I will cover how to use the various formatting tools in Excel. The Format…

Add Notes and Comments to Cells in Excel

Tutorial:
Did you know that you can add notes and comments to any cell in Excel?  You can write re…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Baykal555

1 / 1 / 0

Регистрация: 08.09.2017

Сообщений: 391

1

Событие при двойном клике

26.06.2020, 16:44. Показов 3932. Ответов 14

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Всем привет!
Подскажите, пожалуйста, в чем ошибка:
Пытаюсь сделать, чтобы при двойном клике по ячейке А1 появлялся MsgBox, однако условие срабатывает при двойном клике на любую ячейку:

Visual Basic
1
2
3
4
5
6
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell = Range("A1") Then
Cancel = True
MsgBox "Hello"
End If
End Sub

Файл прилагаю.
Спасибо!

Вложения

Тип файла: rar Лист Microsoft Office Excel.rar (11.8 Кб, 6 просмотров)



0



АЕ

ᴁ®

Эксперт MS Access

3069 / 1735 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

26.06.2020, 17:08

2

Baykal555, пробуйте так

Visual Basic
1
2
3
4
5
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count = 1 And Target.Row = 1 And Target.Column = 1 Then
    MsgBox "Hello"
End If
End Sub



0



1 / 1 / 0

Регистрация: 08.09.2017

Сообщений: 391

26.06.2020, 17:10

 [ТС]

3

АЕ, так работает. А как прописать, чтобы указывать диапазон? В дальнейшем я планирую сделать цикл.



0



ᴁ®

Эксперт MS Access

3069 / 1735 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

26.06.2020, 17:14

4

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



0



1 / 1 / 0

Регистрация: 08.09.2017

Сообщений: 391

26.06.2020, 18:12

 [ТС]

5

АЕ, а почему мой вариант не работает?



0



passedbyz

Заблокирован

26.06.2020, 18:52

6

Baykal555, если А=В — это не значит что это одна и та же переменная.
Также и у вас — разные ячейки имеют одно значение.



0



Alex77755

11482 / 3773 / 677

Регистрация: 13.02.2009

Сообщений: 11,145

26.06.2020, 19:59

7

Лучший ответ Сообщение было отмечено Baykal555 как решение

Решение

В дальнейшем я планирую сделать цикл

для региона но без цикла

Visual Basic
1
2
3
If Target.Cells.Count = 1 And Not Intersect(Target, Range("a1:d5")) Is Nothing Then
    MsgBox "В зоне", 64, ""
End If



0



ᴁ®

Эксперт MS Access

3069 / 1735 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

26.06.2020, 22:54

8

Цитата
Сообщение от Baykal555
Посмотреть сообщение

а почему мой вариант не работает?

Не судьба….



0



1 / 1 / 0

Регистрация: 08.09.2017

Сообщений: 391

26.06.2020, 23:16

 [ТС]

9

АЕ, просто пытаюсь понять в чем ошибка…



0



ᴁ®

Эксперт MS Access

3069 / 1735 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

26.06.2020, 23:23

10

Цитата
Сообщение от Baykal555
Посмотреть сообщение

просто пытаюсь понять в чем ошибка…

Я обычно в этих ситуациях не напрягаю людей.
Ставлю точки останова в программе, выясняю значение переменных и т.д.
А уж если прошу кого-то, то по крайней мере говорю спасибо.
Дерзайте.



0



1 / 1 / 0

Регистрация: 08.09.2017

Сообщений: 391

26.06.2020, 23:25

 [ТС]

11

АЕ, спасибо…



0



1811 / 1134 / 345

Регистрация: 11.07.2014

Сообщений: 3,999

27.06.2020, 07:32

12

Цитата
Сообщение от Baykal555
Посмотреть сообщение

понять в чем ошибка

ActiveCell (или Target) = Range(«A1») это не сравнение объектов, а сравнение значений в этих ячейках.
Другой вариант проверки Target.Address(0,0) = «A1», ну а лучше, как рекомендует Alex77755, через Intersect



1



1 / 1 / 0

Регистрация: 08.09.2017

Сообщений: 391

28.06.2020, 19:28

 [ТС]

13

Burk, спасибо!



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,928

29.06.2020, 08:55

14

АЕ, зачем сравнивать к-во выделенных ячеек при двойном клике? Разве можно двойной клик сделать по нескольким ячейкам?



1



ᴁ®

Эксперт MS Access

3069 / 1735 / 361

Регистрация: 13.12.2016

Сообщений: 5,937

Записей в блоге: 4

29.06.2020, 09:01

15

Цитата
Сообщение от Vlad999
Посмотреть сообщение

зачем сравнивать к-во выделенных ячеек при двойном клике? Разве можно двойной клик сделать по нескольким ячейкам?

Vlad999, полностью согласен.



0



Последовательное изменение ячейки по двойному клику

ovechkin1973

Дата: Вторник, 05.12.2017, 20:12 |
Сообщение № 1

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Здравствуйте.. пользовался ранее удобным макросом по заливке ячейке цветом по двойному клику.. Сейчас хотел себе другой процесс облегчить.. чтобы при двойном клике на ячейке определенного столбца менялось значение ее с пусто на ДА, потом на НЕТ, потом опять на ПУСТО. Т.е. допустим в первом столбце надо так. А во втором есть три значения для перебора.. т.е надо ПУСТО-ХОРОШО-СРЕДНЕ-ПЛОХО.. знаний, чтобы такое сделать нема.. а что то аналогичного, чтобы приспособить не нашел..

К сообщению приложен файл:

____.xlsm
(14.9 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

 

Ответить

bmv98rus

Дата: Вторник, 05.12.2017, 20:44 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

ovechkin1973,
ПУСТО-ХОРОШО-СРЕДНЕ-ПЛОХО как правило удобнее через выпадающий список, и проверку данных.
Да, нет, пусто, тоже . Или всеж принципиально и макрос и даблклик?


Замечательный Временно просто медведь , процентов на 20.

 

Ответить

ovechkin1973

Дата: Вторник, 05.12.2017, 20:46 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Или всеж принципиально и макрос и даблклик

Да Уважаемый bmv98rus, — принципиально.. через проверку данных знаю как, но не устраивает.. очень хотелось через маркос и даблик..


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

 

Ответить

buchlotnik

Дата: Вторник, 05.12.2017, 20:48 |
Сообщение № 4

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Для ДА-НЕТ: ну и второй аналогично результирующий:

К сообщению приложен файл:

123.xlsm
(16.2 Kb)

Сообщение отредактировал buchlotnikВторник, 05.12.2017, 20:55

 

Ответить

ovechkin1973

Дата: Вторник, 05.12.2017, 20:57 |
Сообщение № 5

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010


Уважаемый buchlotnik, моих знаний привязать макрос к конкретному столбцу не хватает.. В приложенном варианте макроса на любой ячейке любого столбца срабатывает.. как ограничить диапазон по столбцу и строкам?


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

 

Ответить

bmv98rus

Дата: Вторник, 05.12.2017, 21:21 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

Вдруг потребуется некоторая универсальность

Вариант от тезки buchlotnik respect , но переработанный чуток.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rusВторник, 05.12.2017, 21:27

 

Ответить

buchlotnik

Дата: Вторник, 05.12.2017, 21:22 |
Сообщение № 7

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

а для кого написан? >(

Сообщение отредактировал buchlotnikВторник, 05.12.2017, 21:24

 

Ответить

ovechkin1973

Дата: Вторник, 05.12.2017, 21:34 |
Сообщение № 8

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Уважаемый buchlotnik, все работает так, как просил для конкретно примера.. но уже все перепробовал с заменами в коде, чтобы другой диапазон назначить.. допустим другие столбце и не со второй строки, а допустим с 10-ой..
Думал, если $A сменю на $D, то и макрос будет работать на столбце D %)
Надо «перекурить».. а то вывих мозга от такого напряга получу


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

 

Ответить

buchlotnik

Дата: Вторник, 05.12.2017, 21:44 |
Сообщение № 9

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Цитата

если $A сменю на $D, то и макрос будет работать на столбце D

так и должно быть, показывайте в файле как что менялине верю

Цитата

а допустим с 10-ой

для столбца D как вариант

К сообщению приложен файл:

123-1-.xlsm
(16.4 Kb)

 

Ответить

ovechkin1973

Дата: Вторник, 05.12.2017, 22:05 |
Сообщение № 10

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

показывайте в файле как что меняли

это уже похоже клиника полуночника.. %) Попробовал еще раз.. я оказывается хочу слишком в правом столбце AC заставить работать макрос.. а оказывается он дальше столбца Z не хочет работать :( У меня в рабочем файле надо это макрос заставить работать в столбцах, которые именованы двумя буквами..
это я понял ограничение, чтобы макрос работал ниже 9ой строки. А в самом первом варианте (опять же не умом, а практическими экспериментами) выявил, что в столбцах A и B со второй строки меняются значения, а если назначить допустим на столбец C, на котором нет заголовка в первой строке, то даже в С1 ставятся значения.. Или если заголовок в столбце будет в двух строках, то изменения от макроса будут только с 3-й строки работать.

И прошу прощения.. ответы буду завтра читать.. силы VBA все вымотал.. да и на работу через несколько часов вставать уже.


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

 

Ответить

_Boroda_

Дата: Вторник, 05.12.2017, 22:36 |
Сообщение № 11

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Замените[vba]

Код

Select Case Left(.Address, 2)

[/vba]на[vba][/vba]

И тогда вместо [vba]

[/vba]можно написать, где 28 — номер столбца


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Wasilich

Дата: Среда, 06.12.2017, 01:49 |
Сообщение № 12

Группа: Друзья

Ранг: Старожил

Сообщений: 1232


Репутация:

326

±

Замечаний:
0% ±


2003

чтобы другой диапазон назначить.. допустим другие столбце и не со второй строки, а допустим с 10-ой..

Так попробуйте.
[vba]

Код

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
  With Target
    If Not Application.Intersect(Range(«A2:A10»), Target) Is Nothing Then
       Select Case .Value
          Case Is = «»: .Value = «ДА»
          Case Is = «ДА»: .Value = «НЕТ»
          Case Is = «НЕТ»: .Value = «»
       End Select
    End If
    If Not Application.Intersect(Range(«AC10:AC20»), Target) Is Nothing Then
       Select Case .Value
         Case Is = «»: .Value = «ХОРОШО»
         Case Is = «ХОРОШО»: .Value = «СРЕДНЕ»
         Case Is = «СРЕДНЕ»: .Value = «ПЛОХО»
         Case Is = «ПЛОХО»: .Value = «»
       End Select
    End If
  End With
End Sub

[/vba]А в строках: [vba]

Код

If Not Application.Intersect(Range(…

[/vba] укажите свои диапазоны.

Сообщение отредактировал WasilichСреда, 06.12.2017, 01:53

 

Ответить

ovechkin1973

Дата: Четверг, 07.12.2017, 20:31 |
Сообщение № 13

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Уважаемые Wasilich, , _Boroda_, , buchlotnik — огромное человеческое спасибо за науку.. ваша помощь помогла. Извиняюсь, что не ответил сразу….
Все три варианта проверил на свежую голову — все работают!


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

Сообщение отредактировал ovechkin1973Четверг, 07.12.2017, 20:32

 

Ответить

ovechkin1973

Дата: Воскресенье, 16.02.2020, 13:13 |
Сообщение № 14

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Полученные ранее знания мне на пользу не пошли. То, что раньше получилось — в другом файле у меня не получается реализовать.
Хотел вставлять данные начиная с 10-ой строки в столбцах 9-29 по двойному клику. Но больше, чем в 9 и 10-ых столбцах не получается. В столбцах бывает нужно выбирать между значением и пустотой, а иногда значений может и до пяти значений.
Это в 9 и 10 столбце я попробовал сделать. Но с 11 по 29 не получается. Пробовал просто код добавлять
[vba]

Код

Case Is = «$K»
            Select Case .Value
                Case Is = «»: .Value = «Вова»
                Case Is = «Вова»: .Value = «Саша»
                Case Is = «Саша»: .Value = «»
            End Select
        End Select

[/vba]
не работает в столбце K

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

К сообщению приложен файл:

4482612.xlsm
(18.7 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

 

Ответить

ovechkin1973

Дата: Воскресенье, 16.02.2020, 15:03 |
Сообщение № 15

Группа: Проверенные

Ранг: Обитатель

Сообщений: 429


Репутация:

1

±

Замечаний:
0% ±


Excel 2010

Но с 11 по 29 не получается.

нашел ошибку.. в коде был один лишний [vba][/vba] . Код дописал, чтобы работал с 9 по 13 столбцы.. остальные заполню по аналогии, но не уверен, что оптимально решение, хотя если комп «виснуть» не будет, то мои потребности он решит.

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

Эту проблему совершенно не представляю как решать :(

К сообщению приложен файл:

1599038.xlsm
(18.7 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

 

Ответить


Форум программистов Vingrad

Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> Обработка события DoubleClick на ячейке в Excel, Как? 

:(

   

Опции темы

Eugene82
  Дата 28.2.2006, 17:44 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 85
Регистрация: 30.5.2005
Где: г. Ростов-на-Дону

Репутация: нет
Всего: нет

САБЖ

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

Итак, кто знает как запустить событие по DoubleClick, скажем на ячейке А1? (Кажется кто-то писал, что есть способ обработать двойной щелчок и нажатие Enter на ячейке).

PM WWW ICQ   Вверх
Akina
Дата 28.2.2006, 17:57 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20560
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453

Код

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Eugene82
  Дата 28.2.2006, 20:33 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 85
Регистрация: 30.5.2005
Где: г. Ростов-на-Дону

Репутация: нет
Всего: нет

Akina, извини что не там тему создал. Пришлось догадываться как Exсel должен определять, что двойной щелчок сделан именно по ячейке «А1». Оказывается вот так:

Код

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
AddressForm.Show
End If
End Sub

По двойному щелчку мышью всё работает, а вот нажатие Enter на ячейке игнорируется — подозреваю что так и должно быть, но всё таки хотелось бы чтобы и это событие обрабатывалось!

Ещё вопрос. Детский. Какой вид имеют значения Target? А то пришлось с .Address замарочиться, а адреса объединённых ячеек это целые диапазоны! Типа «$G$14:$AY$14». А в адресной строке высвечивается как «G14»!!! Пришлось провоцировать Excel на выдачу мне значения Target.Address, а вот само значение Target не показывает даже Debug.Print! Как быть?

PM WWW ICQ   Вверх
Akina
Дата 1.3.2006, 11:00 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Советчик
****

Профиль
Группа: Модератор
Сообщений: 20560
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453

Цитата(Eugene82 @ 28.2.2006, 21:33 Найти цитируемый пост)
нажатие Enter на ячейке игнорируется

Слушай, а может ты все-таки озаботишься самостоятельно посмотреть, какие события можно обрабатывать, а?

Цитата(Eugene82 @ 28.2.2006, 21:33 Найти цитируемый пост)
Какой вид имеют значения Target?

Там же русским по белому написано — As Range!!!

———————

 О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
likhobory
Дата 1.3.2006, 11:25 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Опытный
**

Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 10
Всего: 20

Цитата(Eugene82 @ 28.2.2006, 20:33 Найти цитируемый пост)
Какой вид имеют значения Target?

Цитата(Eugene82 @ 28.2.2006, 20:33 Найти цитируемый пост)
Target As Range

для более близкого знакомства открой View-> Locals Window , поставь breakpiont на 2 строку (F9) и при выполнении кода ознакомься с содержимым Locals…

———————

TSC! Russia 

PM MAIL   Вверх
Eugene82
Дата 1.3.2006, 16:31 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Шустрый
*

Профиль
Группа: Участник
Сообщений: 85
Регистрация: 30.5.2005
Где: г. Ростов-на-Дону

Репутация: нет
Всего: нет

likhobory, посмотрел, спасибо. Понял что передаётся указатель на объект типа Range со всеми его свойствами — этим и объясняется отсутствие конкретного значения у Target. …Зато можно использовать его свойства и методы (Если я не прав пусть Akina напишет мне значение Target для моего примера smile).

Akina, то что я увидел в Редакторе VB меня не удовлетворило — слишком мало событий можно обрабатывать — прям не верится. К тому же какой-то умный чел писал что нажатие Enter тоже можно обработать — жаль что тему ту удалили. Было бы на 1 глупый вопрос меньше.

Это сообщение отредактировал(а) Eugene82 — 6.3.2006, 15:21

PM WWW ICQ   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «Программирование, связанное с MS Office»

mihanik

staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми
компонентами


  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль «Помогите!» таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в

    «Книге отзывов о работе администрации»

  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!

С уважением
mihanik и
staruha.

 

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »

248

29 ноября 2007 года

Dmitry2064

590 / / 06.12.2006

Конечно, напрмер для ячейки А1
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, ByRef Cancel As Boolean)
If Target = [A1] Then MsgBox «Получилось!»
End Sub

Может я чего-то не так делаю или не понял. Но вставив этот код я дважды нажимаю на ячейку и, как и прежде, попадаю в режим ввода текста.

Цитата:

От SkyM@n: Можно юзать просто рисунок.

Так мне-то надо, что бы потом обрабатывался именно тот ряд, в котором этот рисунок или кнопка находятся (происходит изменение цвета заливки всего ряда для обозначения наступления события «выполнено», либо вставка времени в нужную ячейку). Вот можно ли такую привязку сделать?

Может быть так будет понятне (а может и нет, потому что опять многословно):
у меня ряд начинается с названия документа и в сл. ячейках я ставлю время прохождения этапов обработки (время 1-й распечатки, время правки, «сдано»). Пока руками делается так. Я делаю документ, распечатываю его, пишу время (автоматизировать не нужно). Потом мне приносят док на правку. Я его отыскиваю в куче папок, открываю в программе, правлю, распечатываю и руками ставлю время правки. Потом мне дают команду «готово» и я опять отыскиваю в папках этот док и выкладываю его на сервер. (Отыскивать приходится, потому что постоянно занимаешься след. документом, а потом возвращаешься к какому-то из предыдущих).
А при автоматизации, я бы нажав на кнопку в ряду, соответствующем нужному доку, открывал бы его для правки, а нажав сл. кнопку, он бы копировался на сервер без моего лазания по папкам. Пока я это сделал в виде всего двух кнопок. Т.е. мне надо поставить курсор на нужный ряд и потом нажать соотв. кнопку «правка» или «на сервер», которые вынесены в отдельное место. А если бы такие кнопки были сделаны для каждого документа, то не приходилось бы скакать по экрану, а сразу найдя нужный док, тут же и нажать нужную кнопку. Вот такое извращенческое пожелание :o .

Понравилась статья? Поделить с друзьями:
  • Excel по возрастным группам
  • Excel по возрастанию сортировка формулой
  • Excel по алфавиту одного столбца
  • Excel плюсики на строках
  • Excel плюс перед положительным числом