Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
ИНДЕКС и ПОИСКПОЗ + ComboBOX
 
Если правильно понял, вам надо сделать поиск и выбор нужного значения в выпадающем списке?  
Если так, то я решил такую задачу с помощью отдельной формы, вызываемой по двойному клику на ячейке с выпадающим списком.  
Если интересует, могу дать шаблон с примером.  
Как реализовать такой поиск стандартными средствами Excel, я не знаю.
Программное обнаружение выпадающего списка в ячейке
 
{quote}{login=The_Prist}{date=11.03.2011 03:38}{thema=}{post}Не очень понял, что хочется. Определить тип проверки данных можно так:  
Private Sub Worksheet_Change(ByVal Target As Range)  
If Target.Validation.Type = 3 Then  
MsgBox "Valid"  
Else  
MsgBox "Empty"  
End If  
End Sub  
 
А вот если Вы хотите узнать не возникает ли ошибки в созданном списке - это другой вопрос.{/post}{/quote}  
Если двойной щелчёк сделан на ячейке, в которой отсутствует проверка, то на строке "If Target.Validation.Type = 3 Then" возникает ошибка.    
Можно как-то определить наличие выпадающего списка в ячейке без возникновения ошибок?
Программное обнаружение выпадающего списка в ячейке
 
В задаче по поиску значения в выпадающем списке я столкнулся с проблемой программного определения наличия выпадающего списка в ячейке. форма поиска значения в выпадающем списке вызывается по двойному клику на ячейке. Вопрос в том, как программно определить, если ли в данной ячейке выпадающий список?  
   
По-топорному я уже сделал:  
 On Error GoTo ErrHendler  
 ...  
   If Target.Validation.Type = xlValidateList Then  
     If Left(Target.Validation.Formula1, 1) = "=" Then  
       Set grngSelectedCell = Target  
       Cancel = True  
       strVal = CStr(grngSelectedCell.Value)  
       frmChoose.Show  
       ...  
     End If  
   End If  
 ...  
ErrHendler:  
 If Err.Number <> 1004 Then  
   MsgBox Err.Description, vbOKOnly + vbExclamation, ThisWorkbook.name  
 Else  
   GoTo clear  
 End If  
 
Подскажите пожалуйста, как программно определить, есть ли в ячейке выпадающий список?
Почему не получается изменить данные в элементе ListBox?
 
Не получается изменить данные в компоненте формы ListBox. Пробовал уточнять этот объект именем формы, на которой он находится - не помогло.    
 
Код функции, в которой происходит ошибка:  
 
Private Sub txtOrgName_Change()  
Dim intColumn As Integer  
Dim intRow As Integer  
 
Dim wsSheet As Worksheet  
Dim ws As Worksheet  
Dim intCount As Integer  
Dim strTemp As String  
Dim strTemp1 As String  
Dim int1 As Integer  
Dim int2 As Integer  
 
intColumn = 5  
Set wsSheet = ActiveWorkbook.Sheets("REESTR_ORG")  
Set ws = ActiveWorkbook.Sheets("Заголовок")  
 
If ListReestr.ListCount > 0 Then  
Do  
ListReestr.Removeltem  
Loop While ListReestr.ListCount > 0  
End If  
'Clear  
intCount = Range("LIST_ORG_WARM").Rows.Count + 1  
 
For int1 = 2 To intCount Step 1  
 strTemp = CStr(txtOrgName.Value)  
 strTemp1 = CStr(wsSheet.cells(int1, intColumn).Value)  
 int2 = CInt(InStr(1, strTemp1, strTemp, 1))  
 If int2 > 0 Then  
   ListReestr.AddItem wsSheet.cells(int1, 1)  
 End If  
Next  
 
End Sub  
 
По идее эта функция должна отслеживать изменения в элементе TextBox c именем txtOrgName и в зависимости от введённой в ней информации выводить в ListBox список организаций, в именах которых содержится данная подстрока.  
Проблема в том, что методы Clear, Removeltem, AddItem не работают.    
Буду благодарен за помощь в устранении ошибок.
Как программно определить версию Excel?
 
Спасибо всем, кто помог в решении проблемы.  
 
За что я люблю этот форум, так это за то, что тут быстро и эффективно помогают в решении различных задач.  
Может со временем наберусь опыта и тоже начну помогать другим пользователям.
Как программно определить версию Excel?
 
Вот возник у меня такой вопрос: как программно определить, открыта ли активная книга в Excel 2007 или же они открыта в более ранней версии Excel?
Как программно запретить сохранение шаблонов в формате .xlsx ?
 
The_Prist, спасибо за помощь.
Как программно запретить сохранение шаблонов в формате .xlsx ?
 
>Ну так если для себя - поставьте формат сохранить по умолчанию xls, и тогда,    
>чтобы сохранить в формате xlsx/xlsm, нужно будет их выбирать специально.  
 
Для себя я это уже сделал.  
Но вообще задача заключается в том, чтобы средствами VBA запретить сохранение файлов в формате xlsx. Это техническое задание, которое мне надо выполнить.
Как программно запретить сохранение шаблонов в формате .xlsx ?
 
В материалах Интернет по макро-вирусам упоминается функция ChangeMenuAction, которая якобы позволяет переопределить пункты меню Save и SaveAs. Возможно, с помощью этой функции можно было бы переопределить пользовательский интерфейс сохранения документов Excel и исключить формат xlsx из числа доступных форматов. Синтаксис этой функции найти пока не удалось.
Как программно запретить сохранение шаблонов в формате .xlsx ?
 
Эта защита нужна программистам а не пользователям. Есть вероятность ошибиться при сохранении и нечаянно сохранить в формате xlsx. Если шаблон в формате xlsx уйдёт к пользователям, будет плохо. То-есть это страховка от собственной невнимательности.
Как программно запретить сохранение шаблонов в формате .xlsx ?
 
{quote}{login=Михаил}{date=24.05.2010 05:41}{thema=}{post}Для конкретного приложения формат сохранения устанавливается в параметрах (файл).  
макрос  
Sub Format_xls()  
   Application.DefaultSaveFormat = xlExcel8  
End Sub  
 
 
 
К сообщению прикреплен файл: post_126532.gif  
 
{/post}{/quote}  
Эти меры не создают запрета на сохранение в формате xlsx, хотя в какой-то степени могут оказаться полезными.
Как программно запретить сохранение шаблонов в формате .xlsx ?
 
{quote}  
Давойное цитирование не поддерживает движок форума  
{/quote}  
А почему всё так печально?
Как программно запретить сохранение шаблонов в формате .xlsx ?
 
Вопрос в том, как реализовать запрет на сохранение документов Excel в формате .xlsx?    
Нужно реализовать это программно, средствами VBA.  
 
Буду благодарен за любую помощь в решении этой проблемы.
Страницы: 1
Наверх