Добрый день уважаемые. Из найденных примеров собрал макрос для формы ввода данных. Застопорился на некоторых "неудобствах". 1. Не смог побороть "непоследовательный" ввод данных, то есть после ввода имени нажимаю Enter, курсор переходит не в "Колонна", а "Поезд" и дальше справа налево. После "Колонна" перескакивает на кнопку "Добавить", а надо в "Выявленные нарушения". Нужно чтобы переход был по порядку. В секции кода "Inserting values onto the worksheet", вроде, все стоит в нужном порядке. 2. Как поправить код чтобы "Дата сегодня" отображалась сразу, без клика. Помогите поправить код. Заранее спасибо.
Добрый день уважаемые. Из найденных примеров собрал макрос для формы ввода данных. Застопорился на некоторых "неудобствах". 1. Не смог побороть "непоследовательный" ввод данных, то есть после ввода имени нажимаю Enter, курсор переходит не в "Колонна", а "Поезд" и дальше справа налево. После "Колонна" перескакивает на кнопку "Добавить", а надо в "Выявленные нарушения". Нужно чтобы переход был по порядку. В секции кода "Inserting values onto the worksheet", вроде, все стоит в нужном порядке. 2. Как поправить код чтобы "Дата сегодня" отображалась сразу, без клика. Помогите поправить код. Заранее спасибо.Shylo
Привет Shylo, 1. в редакторе откройте модуль формы, затем меню View -> Tab order, и там измените последовательность обхода контролов, как нужно 2. добавьте строку в UserForm_Initialize [vba]
Код
Private Sub UserForm_Initialize() 'List of 8 countries on the "Colon" worksheet For i = 1 To 15 ComboBox_mery.AddItem Sheets("colon").Cells(i, 1) Next Label_date2.Caption = Date End Sub
[/vba]
Привет Shylo, 1. в редакторе откройте модуль формы, затем меню View -> Tab order, и там измените последовательность обхода контролов, как нужно 2. добавьте строку в UserForm_Initialize [vba]
Код
Private Sub UserForm_Initialize() 'List of 8 countries on the "Colon" worksheet For i = 1 To 15 ComboBox_mery.AddItem Sheets("colon").Cells(i, 1) Next Label_date2.Caption = Date End Sub
nilem, Спасибо огромное, все поправил и работает как хочется. Про первый совет даже не догадывался и в книжках не читал (не обратил внимание), запомню. Позвольте вопрос, а что тогда означает часть кода под комментарием:"Inserting values onto the worksheet" в переводе то "Вставка значений на листе", или это имеется ввиду последовательность внесения данных в ячейки на самом листе? Спасибо за науку, + в репутацию.
nilem, Спасибо огромное, все поправил и работает как хочется. Про первый совет даже не догадывался и в книжках не читал (не обратил внимание), запомню. Позвольте вопрос, а что тогда означает часть кода под комментарием:"Inserting values onto the worksheet" в переводе то "Вставка значений на листе", или это имеется ввиду последовательность внесения данных в ячейки на самом листе? Спасибо за науку, + в репутацию.Shylo
По ходу тестирования возник вопрос. При вводе в поле "Колонна" и "Дата" на одноименных ячейках Excel появляется смарт-тэг с предупреждением, что данные введены как текст. В дальнейшем, для построения сводной таблицы эти данные нужны будут как число и дата. В коде, объявил TextBox_colon как Byte, а TextBox_date как Date, [vba]
Код
Private Sub UserForm_Initialize() For i = 1 To 15 ComboBox_mery.AddItem Sheets("colon").Cells(i, 1) Label_date2.Caption = Date Dim TextBox_colon As Byte Dim TextBox_date As Date Next End Sub
[/vba] попробовал через ".Caption " тоже не помогло. Но если ввод закончить точкой, смарт-тэг не появляется. Хотя поле "Поезд" тоже вводятся только числа (без точки), ячейка на листе, смарт не выбрасывает. Пожалуйста подскажите, как сделать правильно.
По ходу тестирования возник вопрос. При вводе в поле "Колонна" и "Дата" на одноименных ячейках Excel появляется смарт-тэг с предупреждением, что данные введены как текст. В дальнейшем, для построения сводной таблицы эти данные нужны будут как число и дата. В коде, объявил TextBox_colon как Byte, а TextBox_date как Date, [vba]
Код
Private Sub UserForm_Initialize() For i = 1 To 15 ComboBox_mery.AddItem Sheets("colon").Cells(i, 1) Label_date2.Caption = Date Dim TextBox_colon As Byte Dim TextBox_date As Date Next End Sub
[/vba] попробовал через ".Caption " тоже не помогло. Но если ввод закончить точкой, смарт-тэг не появляется. Хотя поле "Поезд" тоже вводятся только числа (без точки), ячейка на листе, смарт не выбрасывает. Пожалуйста подскажите, как сделать правильно.Shylo
RAN, У меня с файлом-примером такая ситуация. При вводе цифр в поля "Колонна" и "Дата", сам Excel на эти ячейки ругается, что введен текст. А при вводе в поле "№поезда" этой ругани нет. вот это меня и смутило. То что Excel ругался на дату, это поправил, отменой проверки записи года двумя символами. Подсказку Бороды, еще не проверил, но интуитивно чувствую, что там моя ошибка. Только начинаю вникать в это интересное программирование, и ВСЕМ очень большое спасибо за помощь.
RAN, У меня с файлом-примером такая ситуация. При вводе цифр в поля "Колонна" и "Дата", сам Excel на эти ячейки ругается, что введен текст. А при вводе в поле "№поезда" этой ругани нет. вот это меня и смутило. То что Excel ругался на дату, это поправил, отменой проверки записи года двумя символами. Подсказку Бороды, еще не проверил, но интуитивно чувствую, что там моя ошибка. Только начинаю вникать в это интересное программирование, и ВСЕМ очень большое спасибо за помощь.Shylo