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

Вход

Регистрация

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

 

= Мир MS Excel/Последовательность ввода в форму - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательность ввода в форму (Макросы/Sub)
Последовательность ввода в форму
Shylo Дата: Среда, 21.01.2015, 14:05 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
Добрый день уважаемые. Из найденных примеров собрал макрос для формы ввода данных. Застопорился на некоторых "неудобствах". 1. Не смог побороть "непоследовательный" ввод данных, то есть после ввода имени нажимаю Enter, курсор переходит не в "Колонна", а "Поезд" и дальше справа налево. После "Колонна" перескакивает на кнопку "Добавить", а надо в "Выявленные нарушения". Нужно чтобы переход был по порядку. В секции кода "Inserting values onto the worksheet", вроде, все стоит в нужном порядке. 2. Как поправить код чтобы "Дата сегодня" отображалась сразу, без клика. Помогите поправить код. Заранее спасибо.
К сообщению приложен файл: 5935677.xls (74.0 Kb)
 
Ответить
СообщениеДобрый день уважаемые. Из найденных примеров собрал макрос для формы ввода данных. Застопорился на некоторых "неудобствах". 1. Не смог побороть "непоследовательный" ввод данных, то есть после ввода имени нажимаю Enter, курсор переходит не в "Колонна", а "Поезд" и дальше справа налево. После "Колонна" перескакивает на кнопку "Добавить", а надо в "Выявленные нарушения". Нужно чтобы переход был по порядку. В секции кода "Inserting values onto the worksheet", вроде, все стоит в нужном порядке. 2. Как поправить код чтобы "Дата сегодня" отображалась сразу, без клика. Помогите поправить код. Заранее спасибо.

Автор - Shylo
Дата добавления - 21.01.2015 в 14:05
nilem Дата: Среда, 21.01.2015, 14:43 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Привет 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]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеПривет 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]

Автор - nilem
Дата добавления - 21.01.2015 в 14:43
Shylo Дата: Среда, 21.01.2015, 15:33 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
nilem, Спасибо огромное, все поправил и работает как хочется. Про первый совет даже не догадывался и в книжках не читал (не обратил внимание), запомню. Позвольте вопрос, а что тогда означает часть кода под комментарием:"Inserting values onto the worksheet" в переводе то "Вставка значений на листе", или это имеется ввиду последовательность внесения данных в ячейки на самом листе? Спасибо за науку, + в репутацию.
 
Ответить
Сообщениеnilem, Спасибо огромное, все поправил и работает как хочется. Про первый совет даже не догадывался и в книжках не читал (не обратил внимание), запомню. Позвольте вопрос, а что тогда означает часть кода под комментарием:"Inserting values onto the worksheet" в переводе то "Вставка значений на листе", или это имеется ввиду последовательность внесения данных в ячейки на самом листе? Спасибо за науку, + в репутацию.

Автор - Shylo
Дата добавления - 21.01.2015 в 15:33
nilem Дата: Среда, 21.01.2015, 17:40 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
а что тогда означает часть кода под комментарием:"Inserting values onto the worksheet"

да, эта часть кода записывает значения из формы на лист. Например, вот это:
[vba]
Код
Cells(row_number, 2) = TextBox_Last_Name.Value
[/vba]
в ячейку на пересечении строки row_number и столбца 2 записываем текст их текстбокса TextBox_Last_Name


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Среда, 21.01.2015, 17:40
 
Ответить
Сообщение
а что тогда означает часть кода под комментарием:"Inserting values onto the worksheet"

да, эта часть кода записывает значения из формы на лист. Например, вот это:
[vba]
Код
Cells(row_number, 2) = TextBox_Last_Name.Value
[/vba]
в ячейку на пересечении строки row_number и столбца 2 записываем текст их текстбокса TextBox_Last_Name

Автор - nilem
Дата добавления - 21.01.2015 в 17:40
Shylo Дата: Среда, 21.01.2015, 20:52 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
nilem, понял, еще раз спасибо.
 
Ответить
Сообщениеnilem, понял, еще раз спасибо.

Автор - Shylo
Дата добавления - 21.01.2015 в 20:52
Shylo Дата: Четверг, 22.01.2015, 13:27 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
По ходу тестирования возник вопрос. При вводе в поле "Колонна" и "Дата" на одноименных ячейках 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 " тоже не помогло. Но если ввод закончить точкой, смарт-тэг не появляется. Хотя поле "Поезд" тоже вводятся только числа (без точки), ячейка на листе, смарт не выбрасывает. Пожалуйста подскажите, как сделать правильно.
К сообщению приложен файл: 6339175.xls (80.0 Kb)


Сообщение отредактировал Shylo - Четверг, 22.01.2015, 13:29
 
Ответить
СообщениеПо ходу тестирования возник вопрос. При вводе в поле "Колонна" и "Дата" на одноименных ячейках 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
Дата добавления - 22.01.2015 в 13:27
RAN Дата: Четверг, 22.01.2015, 13:51 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
В TextBox всегда текст.

[vba]
Код
Cells(1,1) = CDate(TextBox_date)
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВ TextBox всегда текст.

[vba]
Код
Cells(1,1) = CDate(TextBox_date)
[/vba]

Автор - RAN
Дата добавления - 22.01.2015 в 13:51
Shylo Дата: Четверг, 22.01.2015, 13:57 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
RAN, спасибо, но почему ячейка "№ поезда", себя ведет "нормально"?
 
Ответить
СообщениеRAN, спасибо, но почему ячейка "№ поезда", себя ведет "нормально"?

Автор - Shylo
Дата добавления - 22.01.2015 в 13:57
RAN Дата: Четверг, 22.01.2015, 14:43 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Число excel превращает в число, даже если не нужно.


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

Сообщение отредактировал RAN - Четверг, 22.01.2015, 14:44
 
Ответить
СообщениеЧисло excel превращает в число, даже если не нужно.

Автор - RAN
Дата добавления - 22.01.2015 в 14:43
Shylo Дата: Четверг, 22.01.2015, 16:32 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
Извините за настойчивость, но я запутался. "№поезда", вводим число - получаем число. "Колонна" - вводим число, получаем текст. В чем разница? %)
 
Ответить
СообщениеИзвините за настойчивость, но я запутался. "№поезда", вводим число - получаем число. "Колонна" - вводим число, получаем текст. В чем разница? %)

Автор - Shylo
Дата добавления - 22.01.2015 в 16:32
_Boroda_ Дата: Четверг, 22.01.2015, 16:46 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
В чем разница?

В том, что
[vba]
Код
        Cells(row_number, 4) = TextBox_colon
         ...
         Cells(row_number, 6) = TextBox_poezd.Value
[/vba]
Value не написано


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
В чем разница?

В том, что
[vba]
Код
        Cells(row_number, 4) = TextBox_colon
         ...
         Cells(row_number, 6) = TextBox_poezd.Value
[/vba]
Value не написано

Автор - _Boroda_
Дата добавления - 22.01.2015 в 16:46
Shylo Дата: Четверг, 22.01.2015, 17:01 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
_Boroda_, Вот спасибище. Только начинаю с VBA, поэтому был невнимателен при сборке. hands
 
Ответить
Сообщение_Boroda_, Вот спасибище. Только начинаю с VBA, поэтому был невнимателен при сборке. hands

Автор - Shylo
Дата добавления - 22.01.2015 в 17:01
RAN Дата: Четверг, 22.01.2015, 17:04 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Где получаем?
В выложенном файле все преобразуется. Даже 1/1/4 превращается в дату.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеГде получаем?
В выложенном файле все преобразуется. Даже 1/1/4 превращается в дату.

Автор - RAN
Дата добавления - 22.01.2015 в 17:04
Shylo Дата: Четверг, 22.01.2015, 17:20 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 155
Репутация: 7 ±
Замечаний: 0% ±

Excel-2003; 2010
RAN, У меня с файлом-примером такая ситуация. При вводе цифр в поля "Колонна" и "Дата", сам Excel на эти ячейки ругается, что введен текст. А при вводе в поле "№поезда" этой ругани нет. вот это меня и смутило. То что Excel ругался на дату, это поправил, отменой проверки записи года двумя символами. Подсказку Бороды, еще не проверил, но интуитивно чувствую, что там моя ошибка. Только начинаю вникать в это интересное программирование, и ВСЕМ очень большое спасибо за помощь.
 
Ответить
СообщениеRAN, У меня с файлом-примером такая ситуация. При вводе цифр в поля "Колонна" и "Дата", сам Excel на эти ячейки ругается, что введен текст. А при вводе в поле "№поезда" этой ругани нет. вот это меня и смутило. То что Excel ругался на дату, это поправил, отменой проверки записи года двумя символами. Подсказку Бороды, еще не проверил, но интуитивно чувствую, что там моя ошибка. Только начинаю вникать в это интересное программирование, и ВСЕМ очень большое спасибо за помощь.

Автор - Shylo
Дата добавления - 22.01.2015 в 17:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательность ввода в форму (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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