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

Вход

Регистрация

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

 

= Мир MS Excel/Множество кнопок - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Множество кнопок
Izuver Дата: Среда, 03.04.2013, 15:36 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

На форме существует множество однотипных элементов, кнопок, текстовых полей или полей со списками
И у них код тоже однотипный. Так вот каждому писать Private Sub ComboBox47_Change() проблематично.
Как можно это дело укоротить?
 
Ответить
СообщениеНа форме существует множество однотипных элементов, кнопок, текстовых полей или полей со списками
И у них код тоже однотипный. Так вот каждому писать Private Sub ComboBox47_Change() проблематично.
Как можно это дело укоротить?

Автор - Izuver
Дата добавления - 03.04.2013 в 15:36
Матраскин Дата: Среда, 03.04.2013, 15:56 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

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


в интернете опять кто-то не прав
 
Ответить
Сообщениепосмотреть логику и укоротить... возможно 1 кнопка будет выполнять разные действия в зависимости от ситуации, как вариант

Автор - Матраскин
Дата добавления - 03.04.2013 в 15:56
Serge_007 Дата: Среда, 03.04.2013, 16:01 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Izuver)
писать Private Sub ComboBox47_Change() проблематично.
Как можно это дело укоротить?
За несколько секунд любое кол-во:
В А1 пишете
Код
="Private Sub ComboBox"&ЦЕЛОЕ(СТРОКА()/4)+1&"_Change()"

В А2 код
В А3 End Sub
и протягиваете вниз
Потом копируете в VBA

Во вложении шаблон для 250-ти комбобоксов, заполнил (вместе с написанием формулы) за 20 секунд
К сообщению приложен файл: Izuver.xls (79.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Izuver)
писать Private Sub ComboBox47_Change() проблематично.
Как можно это дело укоротить?
За несколько секунд любое кол-во:
В А1 пишете
Код
="Private Sub ComboBox"&ЦЕЛОЕ(СТРОКА()/4)+1&"_Change()"

В А2 код
В А3 End Sub
и протягиваете вниз
Потом копируете в VBA

Во вложении шаблон для 250-ти комбобоксов, заполнил (вместе с написанием формулы) за 20 секунд

Автор - Serge_007
Дата добавления - 03.04.2013 в 16:01
Izuver Дата: Среда, 03.04.2013, 16:02 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Сейчас это выглядит так:
[vba]
Код

Private Sub TB11_Change()
Sa(ScrollBar1 + 1, 0, 1) = TB11
End Sub
Private Sub TB12_Change()
Sa(ScrollBar1 + 1, 0, 2) = TB12
End Sub
Private Sub TB13_Change()
Sa(ScrollBar1 + 1, 0, 3) = TB13
End Sub
Private Sub TB21_Change()
Sa(ScrollBar1 + 2, 0, 1) = TB21
End Sub
Private Sub TB22_Change()
Sa(ScrollBar1 + 2, 0, 2) = TB22
End Sub
Private Sub TB23_Change()
Sa(ScrollBar1 + 2, 0, 3) = TB23
End Sub
[/vba]
 
Ответить
СообщениеСейчас это выглядит так:
[vba]
Код

Private Sub TB11_Change()
Sa(ScrollBar1 + 1, 0, 1) = TB11
End Sub
Private Sub TB12_Change()
Sa(ScrollBar1 + 1, 0, 2) = TB12
End Sub
Private Sub TB13_Change()
Sa(ScrollBar1 + 1, 0, 3) = TB13
End Sub
Private Sub TB21_Change()
Sa(ScrollBar1 + 2, 0, 1) = TB21
End Sub
Private Sub TB22_Change()
Sa(ScrollBar1 + 2, 0, 2) = TB22
End Sub
Private Sub TB23_Change()
Sa(ScrollBar1 + 2, 0, 3) = TB23
End Sub
[/vba]

Автор - Izuver
Дата добавления - 03.04.2013 в 16:02
Izuver Дата: Среда, 03.04.2013, 16:11 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Цитата (Serge_007)
За несколько секунд любое кол-во


Я знаю такой способ создания кода, но он не только на какие-нибудь 100 идеинтичных кнопок, а допустим 10 кнопок для одного кода, 10 для второго .... 10 для десятого кода и вот когда проходит какое-нибудь изменение, это все создавать приходтся заново, да даже просто в я теряюсь в коде.
 
Ответить
Сообщение
Цитата (Serge_007)
За несколько секунд любое кол-во


Я знаю такой способ создания кода, но он не только на какие-нибудь 100 идеинтичных кнопок, а допустим 10 кнопок для одного кода, 10 для второго .... 10 для десятого кода и вот когда проходит какое-нибудь изменение, это все создавать приходтся заново, да даже просто в я теряюсь в коде.

Автор - Izuver
Дата добавления - 03.04.2013 в 16:11
Serge_007 Дата: Среда, 03.04.2013, 16:15 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Izuver)
10 кнопок для одного кода, 10 для второго.... 10 для десятого кода

Сделайте 10 заготовок и пользуйте их smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Izuver)
10 кнопок для одного кода, 10 для второго.... 10 для десятого кода

Сделайте 10 заготовок и пользуйте их smile

Автор - Serge_007
Дата добавления - 03.04.2013 в 16:15
Izuver Дата: Среда, 03.04.2013, 16:21 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

т.е. я думал можно либо заключить их в цикл или определить имя элемента в событии change или clik
а так задача не выполнима в этой среде?
 
Ответить
Сообщениет.е. я думал можно либо заключить их в цикл или определить имя элемента в событии change или clik
а так задача не выполнима в этой среде?

Автор - Izuver
Дата добавления - 03.04.2013 в 16:21
Матраскин Дата: Среда, 03.04.2013, 16:33 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
я то думал афтар хочет сократить кол-во кода...а оказалось, что хочет много кода smile создание эл-ов вроде как можно заключить в цикл...там жмёшь на кнопку, а вылазит ещё 10 happy


в интернете опять кто-то не прав
 
Ответить
Сообщениея то думал афтар хочет сократить кол-во кода...а оказалось, что хочет много кода smile создание эл-ов вроде как можно заключить в цикл...там жмёшь на кнопку, а вылазит ещё 10 happy

Автор - Матраскин
Дата добавления - 03.04.2013 в 16:33
RAN Дата: Среда, 03.04.2013, 16:46 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Izuver)
определить имя элемента

Можно. А можно
[vba]
Код
Private Sub TB11_Change()
       i = 1: j = 0: k = 1: n = 11
       Call ScrollB(i, j, k, n)
End Sub
Private Sub TB12_Change()
       i = 1: j = 0: k = 2: n = 12
       Call ScrollB(i, j, k, n)
End Sub
Private Sub TB13_Change()
       i = 1: j = 0: k = 3: n = 13
       Call ScrollB(i, j, k, n)
End Sub
Private Sub ScrollB(i, j, k, n)
       Sa(ScrollBar1 + i, j, k) = Controls("TB" & n)
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 03.04.2013, 16:47
 
Ответить
Сообщение
Цитата (Izuver)
определить имя элемента

Можно. А можно
[vba]
Код
Private Sub TB11_Change()
       i = 1: j = 0: k = 1: n = 11
       Call ScrollB(i, j, k, n)
End Sub
Private Sub TB12_Change()
       i = 1: j = 0: k = 2: n = 12
       Call ScrollB(i, j, k, n)
End Sub
Private Sub TB13_Change()
       i = 1: j = 0: k = 3: n = 13
       Call ScrollB(i, j, k, n)
End Sub
Private Sub ScrollB(i, j, k, n)
       Sa(ScrollBar1 + i, j, k) = Controls("TB" & n)
End Sub
[/vba]

Автор - RAN
Дата добавления - 03.04.2013 в 16:46
Izuver Дата: Среда, 03.04.2013, 16:51 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Цитата (RAN)
Можно. А можно

Речь шла про 1 код, а так это еще больше
на листе это можно сделать с помощью Application.Caller
 
Ответить
Сообщение
Цитата (RAN)
Можно. А можно

Речь шла про 1 код, а так это еще больше
на листе это можно сделать с помощью Application.Caller

Автор - Izuver
Дата добавления - 03.04.2013 в 16:51
RAN Дата: Среда, 03.04.2013, 16:56 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Клиент не знает, что он хочет, пока не получит то, что желает. Так?
Используйте классы.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеКлиент не знает, что он хочет, пока не получит то, что желает. Так?
Используйте классы.

Автор - RAN
Дата добавления - 03.04.2013 в 16:56
Izuver Дата: Среда, 03.04.2013, 17:08 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Цитата (RAN)
Используйте классы.

подскажите примером
 
Ответить
Сообщение
Цитата (RAN)
Используйте классы.

подскажите примером

Автор - Izuver
Дата добавления - 03.04.2013 в 17:08
Матраскин Дата: Среда, 03.04.2013, 17:10 | Сообщение № 13
Группа: Друзья
Ранг: Обитатель
Сообщений: 375
Репутация: 81 ±
Замечаний: 0% ±

20xx
Izuver, это шутка юмора cool


в интернете опять кто-то не прав
 
Ответить
СообщениеIzuver, это шутка юмора cool

Автор - Матраскин
Дата добавления - 03.04.2013 в 17:10
RAN Дата: Среда, 03.04.2013, 17:34 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Цитата (Izuver)
Речь шла про 1 код, а так это еще больше

Цитата (Izuver)
Сейчас это выглядит так:

И слева направо считал, и справа налево, и сверху вниз, и снизу вверх - все равно 6 получается. biggrin


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Цитата (Izuver)
Речь шла про 1 код, а так это еще больше

Цитата (Izuver)
Сейчас это выглядит так:

И слева направо считал, и справа налево, и сверху вниз, и снизу вверх - все равно 6 получается. biggrin

Автор - RAN
Дата добавления - 03.04.2013 в 17:34
  • Страница 1 из 1
  • 1
Поиск:

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