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

Вход

Регистрация

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

 

= Мир MS Excel/Поочерёдный выбор элементов activeX в цикле - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поочерёдный выбор элементов activeX в цикле (Макросы/Sub)
Поочерёдный выбор элементов activeX в цикле
Alexander_Galizin Дата: Четверг, 10.09.2015, 13:00 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Добрый день.
У меня имеются 30 полей со списком Combobox1, Combobox2......Combobox30
Мне необходимо присвоить значение Combobox1.text="-----" и так для всех кнопок на листе. Я могу сделать это для каждой в отдельности в макросе:

[vba]
Код
sub Макрос1()
Combobox1.text="-----"
Combobox2.text="-----"
.
.
.
Combobox30.text="-----"
end sub
[/vba]

Помогите пожалуйста это сделать в како-нибудь цикле, лучше for next, который перебирал бы все эти Combobox
[moder]Вы мое терпение испытываете, да? Зачем Вы еще одну тему создали? п. 5f Правил форума.
А с названием теперь все хорошо. И ветка форума правильно выбрана. Осталось еще разобраться с обрамлением кода макроса спецтегами http://www.excelworld.ru/forum/5-2708-1 и приложением файла.
А ту тему я закрываю.


Сообщение отредактировал _Boroda_ - Четверг, 10.09.2015, 13:14
 
Ответить
СообщениеДобрый день.
У меня имеются 30 полей со списком Combobox1, Combobox2......Combobox30
Мне необходимо присвоить значение Combobox1.text="-----" и так для всех кнопок на листе. Я могу сделать это для каждой в отдельности в макросе:

[vba]
Код
sub Макрос1()
Combobox1.text="-----"
Combobox2.text="-----"
.
.
.
Combobox30.text="-----"
end sub
[/vba]

Помогите пожалуйста это сделать в како-нибудь цикле, лучше for next, который перебирал бы все эти Combobox
[moder]Вы мое терпение испытываете, да? Зачем Вы еще одну тему создали? п. 5f Правил форума.
А с названием теперь все хорошо. И ветка форума правильно выбрана. Осталось еще разобраться с обрамлением кода макроса спецтегами http://www.excelworld.ru/forum/5-2708-1 и приложением файла.
А ту тему я закрываю.

Автор - Alexander_Galizin
Дата добавления - 10.09.2015 в 13:00
Udik Дата: Четверг, 10.09.2015, 15:33 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Доступно только для пользователей
[moder]Вот когда автор оформит свой вопрос по правилам, тогда и будем отвечать. А пока не безобразничайте.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеДоступно только для пользователей
[moder]Вот когда автор оформит свой вопрос по правилам, тогда и будем отвечать. А пока не безобразничайте.

Автор - Udik
Дата добавления - 10.09.2015 в 15:33
Alexander_Galizin Дата: Понедельник, 14.09.2015, 16:13 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Udik, Добрый день.
Файл в котором надо сделать опрос контролек в цикле.
К сообщению приложен файл: __ActiveX__.xlsm (15.8 Kb)
 
Ответить
СообщениеUdik, Добрый день.
Файл в котором надо сделать опрос контролек в цикле.

Автор - Alexander_Galizin
Дата добавления - 14.09.2015 в 16:13
Udik Дата: Понедельник, 14.09.2015, 20:05 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Ну так например
[vba]
Код

Public Sub test()
Dim i As Byte
Const maxCom As Byte = 6

For i = 1 To maxCom
    Worksheets("basa").OLEObjects("ComboBox" & i).Object.Value = i
Next i

End Sub

[/vba]
К сообщению приложен файл: activ.xlsm (32.5 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеНу так например
[vba]
Код

Public Sub test()
Dim i As Byte
Const maxCom As Byte = 6

For i = 1 To maxCom
    Worksheets("basa").OLEObjects("ComboBox" & i).Object.Value = i
Next i

End Sub

[/vba]

Автор - Udik
Дата добавления - 14.09.2015 в 20:05
SLAVICK Дата: Вторник, 15.09.2015, 08:58 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Alexander_Galizin, Вы замечание модератора исправлять собираетесь?
Код написан, но правила нарушать нельзя :D
Udik, автор темы так и не исправил 1-е сообщение. ... ЗЫ если их будет неизвестное количество?


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеAlexander_Galizin, Вы замечание модератора исправлять собираетесь?
Код написан, но правила нарушать нельзя :D
Udik, автор темы так и не исправил 1-е сообщение. ... ЗЫ если их будет неизвестное количество?

Автор - SLAVICK
Дата добавления - 15.09.2015 в 08:58
Pelena Дата: Вторник, 15.09.2015, 09:33 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
Теги проставила сама в обмен на замечание.
Остальные нарушения ТС устранил, так что можно отвечать :)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеТеги проставила сама в обмен на замечание.
Остальные нарушения ТС устранил, так что можно отвечать :)

Автор - Pelena
Дата добавления - 15.09.2015 в 09:33
SLAVICK Дата: Вторник, 15.09.2015, 09:41 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Ну тогда вот :D :
1-й вариант через Shapes:
[vba]
Код
Sub TEST()
Dim s As Shape, c As ComboBox, sh As Worksheet, i&
Set sh = ActiveSheet
i = 2
For Each s In sh.Shapes
     On Error GoTo next_
     If Not s.Name Like "ComboBox*" Then GoTo next_
     Set c = s.DrawingObject.Object
     i = i + 1: Cells(i, 10) = c.Name:  c.Text = Cells(i, 11)
next_:
Next
End Sub
[/vba]
2-й вариант почти как у Udik :) :
[vba]
Код
Sub TEST_2()
Dim s As OLEObject, sh As Worksheet, i&
Set sh = ActiveSheet
i = 2
For Each s In sh.OLEObjects
     i = i + 1: Cells(i, 13) = s.Name:  s.Object.Text = Cells(i, 14)
Next
End Sub
[/vba]
PS Исправил сообщение
К сообщению приложен файл: _ActiveX-1-.xlsm (39.0 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Вторник, 15.09.2015, 09:51
 
Ответить
СообщениеНу тогда вот :D :
1-й вариант через Shapes:
[vba]
Код
Sub TEST()
Dim s As Shape, c As ComboBox, sh As Worksheet, i&
Set sh = ActiveSheet
i = 2
For Each s In sh.Shapes
     On Error GoTo next_
     If Not s.Name Like "ComboBox*" Then GoTo next_
     Set c = s.DrawingObject.Object
     i = i + 1: Cells(i, 10) = c.Name:  c.Text = Cells(i, 11)
next_:
Next
End Sub
[/vba]
2-й вариант почти как у Udik :) :
[vba]
Код
Sub TEST_2()
Dim s As OLEObject, sh As Worksheet, i&
Set sh = ActiveSheet
i = 2
For Each s In sh.OLEObjects
     i = i + 1: Cells(i, 13) = s.Name:  s.Object.Text = Cells(i, 14)
Next
End Sub
[/vba]
PS Исправил сообщение

Автор - SLAVICK
Дата добавления - 15.09.2015 в 09:41
Udik Дата: Вторник, 15.09.2015, 14:21 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
ЗЫ если их будет неизвестное количество?

Ну тогда по-другому будем решать :)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
ЗЫ если их будет неизвестное количество?

Ну тогда по-другому будем решать :)

Автор - Udik
Дата добавления - 15.09.2015 в 14:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поочерёдный выбор элементов activeX в цикле (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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