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

Вход

Регистрация

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

 

= Мир MS Excel/Активация ячейки, значение которой находится в окне ActiveX - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Активация ячейки, значение которой находится в окне ActiveX (Макросы/Sub)
Активация ячейки, значение которой находится в окне ActiveX
китин Дата: Понедельник, 23.05.2016, 13:38 | Сообщение № 1
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Доброго всем дня Уважаемые! Опять к вам за помощью! Сделал выпадающий список на основе элемента ActiveX. Вопрос :как сделать так , что бы курсор перемещался в ту ячейку таблицы, значение которого выбрано в окне выпадающего списка?
[p.s.]на самом деле в таблице 20000 строк и не факт, что все они( в столбце С ) заполнены[/p.s.]
[moder]Игорь, конкретно напиши - если там-то написано то-то, то при нажатии здесь курсор нужно переместить туда[/moder]
К сообщению приложен файл: 0284675.xlsm (87.9 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал _Boroda_ - Понедельник, 23.05.2016, 14:04
 
Ответить
СообщениеДоброго всем дня Уважаемые! Опять к вам за помощью! Сделал выпадающий список на основе элемента ActiveX. Вопрос :как сделать так , что бы курсор перемещался в ту ячейку таблицы, значение которого выбрано в окне выпадающего списка?
[p.s.]на самом деле в таблице 20000 строк и не факт, что все они( в столбце С ) заполнены[/p.s.]
[moder]Игорь, конкретно напиши - если там-то написано то-то, то при нажатии здесь курсор нужно переместить туда[/moder]

Автор - китин
Дата добавления - 23.05.2016 в 13:38
китин Дата: Понедельник, 23.05.2016, 14:26 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Конкретно нада вот так.
в окне ActiveX написано к примеру 10000000030 надо чтобы курсор при нажaтии Enter переместился в ячейку С32 написано 10000000085 курсор в ячейку С87. а если эта ячейка еще и подсветится то будет вообще великолепно! yes


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Понедельник, 23.05.2016, 14:28
 
Ответить
СообщениеКонкретно нада вот так.
в окне ActiveX написано к примеру 10000000030 надо чтобы курсор при нажaтии Enter переместился в ячейку С32 написано 10000000085 курсор в ячейку С87. а если эта ячейка еще и подсветится то будет вообще великолепно! yes

Автор - китин
Дата добавления - 23.05.2016 в 14:26
_Boroda_ Дата: Понедельник, 23.05.2016, 14:43 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
И снова не совсем понял. Так нужно?
[vba]
Код
Private Sub ComboBox1_Change()
    r_ = WorksheetFunction.Match(--ComboBox1.Value, Columns(3), 0)
    Columns("C:C").Interior.Pattern = xlNone
    Cells(r_, 3).Select
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]
К сообщению приложен файл: 0284675_1.xlsm (85.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеИ снова не совсем понял. Так нужно?
[vba]
Код
Private Sub ComboBox1_Change()
    r_ = WorksheetFunction.Match(--ComboBox1.Value, Columns(3), 0)
    Columns("C:C").Interior.Pattern = xlNone
    Cells(r_, 3).Select
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 23.05.2016 в 14:43
al-Ex Дата: Понедельник, 23.05.2016, 15:01 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Возможно так:
К сообщению приложен файл: fnd.xlsm (89.0 Kb)
 
Ответить
СообщениеВозможно так:

Автор - al-Ex
Дата добавления - 23.05.2016 в 15:01
Hugo Дата: Понедельник, 23.05.2016, 15:05 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Можно проще:
[vba]
Код
Private Sub ComboBox1_Change()
    Cells(ComboBox1.ListIndex + 3, 3).Select
End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеМожно проще:
[vba]
Код
Private Sub ComboBox1_Change()
    Cells(ComboBox1.ListIndex + 3, 3).Select
End Sub
[/vba]

Автор - Hugo
Дата добавления - 23.05.2016 в 15:05
китин Дата: Понедельник, 23.05.2016, 15:08 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Почти то что нужно!. Только не дает вводить в окно ActiveX вручную вводить значения. Позволяет только выбирать из выпадающего списка. :'(


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеПочти то что нужно!. Только не дает вводить в окно ActiveX вручную вводить значения. Позволяет только выбирать из выпадающего списка. :'(

Автор - китин
Дата добавления - 23.05.2016 в 15:08
_Boroda_ Дата: Понедельник, 23.05.2016, 15:25 | Сообщение № 7
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ты про вот так?
Позаимствовал индекс у Hugo,
[vba]
Код
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex <= 0 Then Exit Sub
    Cells(ComboBox1.ListIndex + 3, 3).Select
    Columns("C:C").Interior.Pattern = xlNone
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]
Ну или с ПОИСКПОЗом
[vba]
Код
Private Sub ComboBox1_Change()
    On Error Resume Next
    r_ = WorksheetFunction.Match(--ComboBox1.Value, Columns(3), 0)
    If Err.Number Then Exit Sub
    Columns("C:C").Interior.Pattern = xlNone
    Cells(r_, 3).Select
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]

Индексом лучше.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТы про вот так?
Позаимствовал индекс у Hugo,
[vba]
Код
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex <= 0 Then Exit Sub
    Cells(ComboBox1.ListIndex + 3, 3).Select
    Columns("C:C").Interior.Pattern = xlNone
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]
Ну или с ПОИСКПОЗом
[vba]
Код
Private Sub ComboBox1_Change()
    On Error Resume Next
    r_ = WorksheetFunction.Match(--ComboBox1.Value, Columns(3), 0)
    If Err.Number Then Exit Sub
    Columns("C:C").Interior.Pattern = xlNone
    Cells(r_, 3).Select
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]

Индексом лучше.

Автор - _Boroda_
Дата добавления - 23.05.2016 в 15:25
китин Дата: Понедельник, 23.05.2016, 15:39 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
В идеале очень хотелось бы так: Набираешь в окне ActiveX первые цифры/буквы, появляется выпадающее окно со списком из столбца С, который совпадает с набранными цифрами/буквами .Нажимаешь на нужный параметр, он появляется в окне ActiveX и одновременно курсор уходит на соответствующую ячейку и она подсвечивается каким либо цветом.
Саша ругается на [vba]
Код
r_ = WorksheetFunction.Match(--ComboBox1.Value, Columns(3), 0)
[/vba] run-time error 13
К сообщению приложен файл: __2.xlsm (89.4 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеВ идеале очень хотелось бы так: Набираешь в окне ActiveX первые цифры/буквы, появляется выпадающее окно со списком из столбца С, который совпадает с набранными цифрами/буквами .Нажимаешь на нужный параметр, он появляется в окне ActiveX и одновременно курсор уходит на соответствующую ячейку и она подсвечивается каким либо цветом.
Саша ругается на [vba]
Код
r_ = WorksheetFunction.Match(--ComboBox1.Value, Columns(3), 0)
[/vba] run-time error 13

Автор - китин
Дата добавления - 23.05.2016 в 15:39
_Boroda_ Дата: Понедельник, 23.05.2016, 15:46 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Это вот здесь
http://www.excelworld.ru/board/vba/tricks/find_in_database/9-1-0-27
Саша ругается на
Ничего подобного, я не ругаюсь. Пока еще.
Ты On Error ... выше написал?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЭто вот здесь
http://www.excelworld.ru/board/vba/tricks/find_in_database/9-1-0-27
Саша ругается на
Ничего подобного, я не ругаюсь. Пока еще.
Ты On Error ... выше написал?

Автор - _Boroda_
Дата добавления - 23.05.2016 в 15:46
krosav4ig Дата: Понедельник, 23.05.2016, 15:51 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
может так нужно?
[vba]
Код
Private Sub ComboBox1_Change()
    With ComboBox1
        Application.Goto Range(.ListFillRange)(.ListIndex + 1), 1
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 23.05.2016, 15:52
 
Ответить
Сообщениеможет так нужно?
[vba]
Код
Private Sub ComboBox1_Change()
    With ComboBox1
        Application.Goto Range(.ListFillRange)(.ListIndex + 1), 1
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 23.05.2016 в 15:51
китин Дата: Понедельник, 23.05.2016, 15:57 | Сообщение № 11
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
я не ругаюсь. Пока еще.

Не надо, я хороший :D
Ты On Error ... выше написал?

конечно.( после того как прочитал)
Второй твой вариант работает как надо. Завтра на большом файле попробую. Может получится соединить с файлом по сыылке.
Спасибо господа ! respect


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
я не ругаюсь. Пока еще.

Не надо, я хороший :D
Ты On Error ... выше написал?

конечно.( после того как прочитал)
Второй твой вариант работает как надо. Завтра на большом файле попробую. Может получится соединить с файлом по сыылке.
Спасибо господа ! respect

Автор - китин
Дата добавления - 23.05.2016 в 15:57
китин Дата: Понедельник, 23.05.2016, 16:07 | Сообщение № 12
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
krosav4ig, Андрей hands .отлично!!!!


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеkrosav4ig, Андрей hands .отлично!!!!

Автор - китин
Дата добавления - 23.05.2016 в 16:07
krosav4ig Дата: Понедельник, 23.05.2016, 16:39 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Набираешь в окне ActiveX первые цифры/буквы, появляется выпадающее окно со списком из столбца С, который совпадает с набранными цифрами/буквами

[vba]
Код
Private Sub ComboBox1_Change()
    Dim arr As Variant, r&
    With ComboBox1
        If Len(.Value) = 0 Then Exit Sub
        arr = Application.Transpose([c3].Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3).Value)
        On Error Resume Next
        .List = Filter(arr, ComboBox1.Value): .DropDown: DoEvents
        If UBound(.List) < 0 Then Application.SendKeys "{ESC}", 1
        r = Application.Match(IIf(IsNumeric(.Value), --.Value, .Value), arr, 0)
        If r Then Application.Goto Range("C3")(r), 1
    End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Набираешь в окне ActiveX первые цифры/буквы, появляется выпадающее окно со списком из столбца С, который совпадает с набранными цифрами/буквами

[vba]
Код
Private Sub ComboBox1_Change()
    Dim arr As Variant, r&
    With ComboBox1
        If Len(.Value) = 0 Then Exit Sub
        arr = Application.Transpose([c3].Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3).Value)
        On Error Resume Next
        .List = Filter(arr, ComboBox1.Value): .DropDown: DoEvents
        If UBound(.List) < 0 Then Application.SendKeys "{ESC}", 1
        r = Application.Match(IIf(IsNumeric(.Value), --.Value, .Value), arr, 0)
        If r Then Application.Goto Range("C3")(r), 1
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 23.05.2016 в 16:39
китин Дата: Вторник, 24.05.2016, 08:02 | Сообщение № 14
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Всем доброго утра!!! Попытался соединить вместе оба макроса Андрея и первый макрос Саши (ту часть, что красит ячейку) Получилось вот так[vba]
Код
Private Sub ComboBox1_Change()
Dim arr As Variant, r&
    With ComboBox1
        If Len(.Value) = 0 Then Exit Sub
        arr = Application.Transpose([c3].Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3).Value)
        On Error Resume Next
        .List = Filter(arr, ComboBox1.Value): .DropDown: DoEvents
        If UBound(.List) < 0 Then Application.SendKeys "{ESC}", 1
        r = Application.Match(IIf(IsNumeric(.Value), --.Value, .Value), arr, 0)
        If r Then Application.Goto Range("C3")(r), 1
    End With
    With ComboBox1
        Application.Goto Range(.ListFillRange)(.ListIndex + 1), 1
        
    End With
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]

Все великолепно!!! Правда он оставляет ячейки окрашенными. А хотелось бы, что бы только одна ячейка была окрашена -активная.
[p.s.]и традиционно: если не трудно прокомметируйте плз pray
К сообщению приложен файл: __3.xlsm (91.9 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Вторник, 24.05.2016, 08:04
 
Ответить
СообщениеВсем доброго утра!!! Попытался соединить вместе оба макроса Андрея и первый макрос Саши (ту часть, что красит ячейку) Получилось вот так[vba]
Код
Private Sub ComboBox1_Change()
Dim arr As Variant, r&
    With ComboBox1
        If Len(.Value) = 0 Then Exit Sub
        arr = Application.Transpose([c3].Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3).Value)
        On Error Resume Next
        .List = Filter(arr, ComboBox1.Value): .DropDown: DoEvents
        If UBound(.List) < 0 Then Application.SendKeys "{ESC}", 1
        r = Application.Match(IIf(IsNumeric(.Value), --.Value, .Value), arr, 0)
        If r Then Application.Goto Range("C3")(r), 1
    End With
    With ComboBox1
        Application.Goto Range(.ListFillRange)(.ListIndex + 1), 1
        
    End With
    Selection.Interior.ColorIndex = 8
End Sub
[/vba]

Все великолепно!!! Правда он оставляет ячейки окрашенными. А хотелось бы, что бы только одна ячейка была окрашена -активная.
[p.s.]и традиционно: если не трудно прокомметируйте плз pray

Автор - китин
Дата добавления - 24.05.2016 в 08:02
Hugo Дата: Вторник, 24.05.2016, 08:54 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3250
Репутация: 707 ±
Замечаний: 0% ±

2019
Так перед покраской снимите предыдущее (выше ведь уже было):
[vba]
Код
Columns("C:C").Interior.Pattern = xlNone
[/vba]
Нужно комментировать?


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТак перед покраской снимите предыдущее (выше ведь уже было):
[vba]
Код
Columns("C:C").Interior.Pattern = xlNone
[/vba]
Нужно комментировать?

Автор - Hugo
Дата добавления - 24.05.2016 в 08:54
китин Дата: Вторник, 24.05.2016, 09:13 | Сообщение № 16
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Спасибо!
Нужно комментировать?

эта строчка понятна уже :D


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеСпасибо!
Нужно комментировать?

эта строчка понятна уже :D

Автор - китин
Дата добавления - 24.05.2016 в 09:13
krosav4ig Дата: Вторник, 24.05.2016, 17:41 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
я совсем забыл сказать, что для корректной работы моего кода нужно в свойствах комбобокса нужно очистить свойство LisFfillRange и установить MatchEntry fmMatchEntryNone
, немного переписал код, добавил комментарии
[vba]
Код
Private Sub ComboBox1_Change()
    Dim arr As Variant, r&, v As Variant
    With ComboBox1
        If Len(.Value) Then
            'пишем в массив значения из диапазона от C3 до последней непустой ячейки в C:C
            arr = Application.Transpose([c3].Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3).Value)
            'Application.Transpose нужен для получения горизонтального массива,
            'ибо функция Filter с вертикальными массивами работать отказывается
            
            On Error Resume Next    'отключаем отлов ошибок
            'очищаем список: задаем список массивом, фильтрованным по значению в ComboBox1: разворачиваем список
            .List = Array(): .List = Filter(arr, IIf(Len(.Value), .Value, "џ"), 1, 1): .DropDown: DoEvents
            'если список пуст или значение не задано, "жмем" Escape, чтобы его свернуть и завершаем процедуру
        End If
        If UBound(.List) < 0 Or Len(.Value) = 0 Then Application.SendKeys "{ESC}", 1: DoEvents: .Activate: Exit Sub
        'если в ComboBox1 числовое значение, конвертируем в число
        'число, записанное текстом, тоже распознается как числовое
        If IsNumeric(.Value) Then v = --.Value Else v = .Value
        Err.Clear 'очищаем информацию об ошибке
        'ищем значение ComboBox1 в массиве, и прокручиваем лист до соответствующей ячейки
        Application.Goto Range("C3")(Application.Match(v, arr, 0)), 1
    End With
    If Err = 0 Then 'если значение было найдено
        'снимаем окрашивание со столбца
        Columns("C:C").Interior.Pattern = xlNone
        'красим ячейку
        Selection.Interior.ColorIndex = 8
    End If
End Sub
[/vba]
К сообщению приложен файл: _3.xlsm (94.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 24.05.2016, 23:53
 
Ответить
Сообщениея совсем забыл сказать, что для корректной работы моего кода нужно в свойствах комбобокса нужно очистить свойство LisFfillRange и установить MatchEntry fmMatchEntryNone
, немного переписал код, добавил комментарии
[vba]
Код
Private Sub ComboBox1_Change()
    Dim arr As Variant, r&, v As Variant
    With ComboBox1
        If Len(.Value) Then
            'пишем в массив значения из диапазона от C3 до последней непустой ячейки в C:C
            arr = Application.Transpose([c3].Resize(Cells(Rows.Count, 2).End(xlUp).Row - 3).Value)
            'Application.Transpose нужен для получения горизонтального массива,
            'ибо функция Filter с вертикальными массивами работать отказывается
            
            On Error Resume Next    'отключаем отлов ошибок
            'очищаем список: задаем список массивом, фильтрованным по значению в ComboBox1: разворачиваем список
            .List = Array(): .List = Filter(arr, IIf(Len(.Value), .Value, "џ"), 1, 1): .DropDown: DoEvents
            'если список пуст или значение не задано, "жмем" Escape, чтобы его свернуть и завершаем процедуру
        End If
        If UBound(.List) < 0 Or Len(.Value) = 0 Then Application.SendKeys "{ESC}", 1: DoEvents: .Activate: Exit Sub
        'если в ComboBox1 числовое значение, конвертируем в число
        'число, записанное текстом, тоже распознается как числовое
        If IsNumeric(.Value) Then v = --.Value Else v = .Value
        Err.Clear 'очищаем информацию об ошибке
        'ищем значение ComboBox1 в массиве, и прокручиваем лист до соответствующей ячейки
        Application.Goto Range("C3")(Application.Match(v, arr, 0)), 1
    End With
    If Err = 0 Then 'если значение было найдено
        'снимаем окрашивание со столбца
        Columns("C:C").Interior.Pattern = xlNone
        'красим ячейку
        Selection.Interior.ColorIndex = 8
    End If
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 24.05.2016 в 17:41
RAN Дата: Вторник, 24.05.2016, 21:28 | Сообщение № 18
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Полюбопытсьвовал.
Сложилось впечатление, что нужно так
[vba]
Код
Application.Goto Range("C3")(Application.Match(v, arr, 0)), 1
[/vba]

И большая загадка, зачем
[vba]
Код
Application.Cursor = xlDefault
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПолюбопытсьвовал.
Сложилось впечатление, что нужно так
[vba]
Код
Application.Goto Range("C3")(Application.Match(v, arr, 0)), 1
[/vba]

И большая загадка, зачем
[vba]
Код
Application.Cursor = xlDefault
[/vba]

Автор - RAN
Дата добавления - 24.05.2016 в 21:28
SLAVICK Дата: Вторник, 24.05.2016, 23:47 | Сообщение № 19
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Полюбопытсьвовал.

Я тоже :D
на большой таблице - лучше заполнение комбобокса и поиск начинать после ввода 3-х - 4-х символов - тогда не будет тормозов. :
[vba]
Код
If Len(.Value) < 3 Then Exit Sub
[/vba]

и - мне кажется - лучше не менять заливку ячеек - а изменять правило уф - тогда можно выделять ячейки столбца С при необходимости и макрос не будет убивать заливку.
Кроме того если написать так:
[vba]
Код
        'красим ячейку
        Columns("C:C").FormatConditions(1).Delete
        Columns("C:C").FormatConditions.Add Type:=xlTextString, String:=CStr(v), TextOperator:=xlContains
        Columns("C:C").FormatConditions(1).Interior.ColorIndex = 8
[/vba]
то будут выделятся все значения, которые содержат текст комбобокса - даже если введено не до конца.
К сообщению приложен файл: 5041307.xlsm (88.7 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
Полюбопытсьвовал.

Я тоже :D
на большой таблице - лучше заполнение комбобокса и поиск начинать после ввода 3-х - 4-х символов - тогда не будет тормозов. :
[vba]
Код
If Len(.Value) < 3 Then Exit Sub
[/vba]

и - мне кажется - лучше не менять заливку ячеек - а изменять правило уф - тогда можно выделять ячейки столбца С при необходимости и макрос не будет убивать заливку.
Кроме того если написать так:
[vba]
Код
        'красим ячейку
        Columns("C:C").FormatConditions(1).Delete
        Columns("C:C").FormatConditions.Add Type:=xlTextString, String:=CStr(v), TextOperator:=xlContains
        Columns("C:C").FormatConditions(1).Interior.ColorIndex = 8
[/vba]
то будут выделятся все значения, которые содержат текст комбобокса - даже если введено не до конца.

Автор - SLAVICK
Дата добавления - 24.05.2016 в 23:47
krosav4ig Дата: Вторник, 24.05.2016, 23:49 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 2346
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Сложилось впечатление, что нужно так

Точно, спасибо, исправил в посте выше
И большая загадка, зачем

Сам не знаю, само закралось :) #Этнияоносамо


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
Сложилось впечатление, что нужно так

Точно, спасибо, исправил в посте выше
И большая загадка, зачем

Сам не знаю, само закралось :) #Этнияоносамо

Автор - krosav4ig
Дата добавления - 24.05.2016 в 23:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Активация ячейки, значение которой находится в окне ActiveX (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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