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

Вход

Регистрация

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

 

= Мир MS Excel/Создание перечня по форме - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Создание перечня по форме (После заполнения формы надо получить список.)
Создание перечня по форме
light26 Дата: Воскресенье, 06.03.2011, 14:51 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Попытаюсь максимально понятно объяснить чего я хочу. Допустим мне надо получить перечень работников с 3 филиалов в котором будут указаны ФИО полностью, должность возраст и стаж работы. Я по электронке рассылаю в кадры форму, где надо заполнить соответствующие графы на листе, ну, назовем его "Форма", а на втором листе, (назовем его "Список" после нажатия на кнопку "ОК" листа "Форма" будет появлятся список.
Прикладываю файл для наглядности и надеюсь на помощь. Спасибо
PS. Файл примера делал в excel 2007. Когда я попытался сохранить его в формате 2003, программа начала жутко ругаться и сохранила документ без единого листа (я вложил и этот файл тоже).
К сообщению приложен файл: Forma.xla (21.5 Kb) · Forma.xls (31.0 Kb)


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Воскресенье, 06.03.2011, 15:14
 
Ответить
СообщениеПопытаюсь максимально понятно объяснить чего я хочу. Допустим мне надо получить перечень работников с 3 филиалов в котором будут указаны ФИО полностью, должность возраст и стаж работы. Я по электронке рассылаю в кадры форму, где надо заполнить соответствующие графы на листе, ну, назовем его "Форма", а на втором листе, (назовем его "Список" после нажатия на кнопку "ОК" листа "Форма" будет появлятся список.
Прикладываю файл для наглядности и надеюсь на помощь. Спасибо
PS. Файл примера делал в excel 2007. Когда я попытался сохранить его в формате 2003, программа начала жутко ругаться и сохранила документ без единого листа (я вложил и этот файл тоже).

Автор - light26
Дата добавления - 06.03.2011 в 14:51
Hugo Дата: Воскресенье, 06.03.2011, 21:20 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Код написал, вот с формулами рассчёта возраста/стажа - это к специалистам.
Столбцы поменял местами специально - так код короче и проще.
Есть два варианта - занести их заранее или помещать макросом вместе с данными. Во втором случае нужно привязываться к переменной х и заносить формулу в строку x+1.
К сообщению приложен файл: 7290009.xls (54.5 Kb)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеКод написал, вот с формулами рассчёта возраста/стажа - это к специалистам.
Столбцы поменял местами специально - так код короче и проще.
Есть два варианта - занести их заранее или помещать макросом вместе с данными. Во втором случае нужно привязываться к переменной х и заносить формулу в строку x+1.

Автор - Hugo
Дата добавления - 06.03.2011 в 21:20
Serge_007 Дата: Воскресенье, 06.03.2011, 21:45 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Hugo)
с формулами рассчёта возраста/стажа - это к специалистам.

Code
=РАЗНДАТ(F2;СЕГОДНЯ();"y")


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Hugo)
с формулами рассчёта возраста/стажа - это к специалистам.

Code
=РАЗНДАТ(F2;СЕГОДНЯ();"y")

Автор - Serge_007
Дата добавления - 06.03.2011 в 21:45
Гость Дата: Воскресенье, 06.03.2011, 21:48 | Сообщение № 4
Группа: Гости
Hugo,
ну, в принципе, вычисление возраста и стажа это не проблема, можно найти при желании. просто время на это тратить не хотел. а вот за код спасибо. Щас вот только книжку по макросам дочитаю и начну использовать :-)
 
Ответить
СообщениеHugo,
ну, в принципе, вычисление возраста и стажа это не проблема, можно найти при желании. просто время на это тратить не хотел. а вот за код спасибо. Щас вот только книжку по макросам дочитаю и начну использовать :-)

Автор - Гость
Дата добавления - 06.03.2011 в 21:48
light26 Дата: Понедельник, 07.03.2011, 14:46 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Serge_007, спасибо за
Quote (Serge_007)
=РАЗНДАТ(F2;СЕГОДНЯ();"y")

тока вот в 2007 эта формула хоть и работает, но функции "=РАЗНДАТ" там нет (я хотел через справку разобраться в том как работает данная формула)

Hugo, спасибо. Сегодня смог открыть и просмотреть документ вместе с макросом. Возник вопрос:

With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a)
.Item(a(i, 2) & a(i, 3) & a(i, 4) & a(i, 5) & a(i, 6) & a(i, 7)) = CStr(1) мне где-то тут надо будет воткнуть формулу "=РАЗНДАТ(F2;СЕГОДНЯ();"y")", чтобы она вставлялась тоже автоматически после нажатия кнопки "ОК" ? (Я еще не ддочитал книгу))))



Я не волшебник. Я только учусь
 
Ответить
СообщениеSerge_007, спасибо за
Quote (Serge_007)
=РАЗНДАТ(F2;СЕГОДНЯ();"y")

тока вот в 2007 эта формула хоть и работает, но функции "=РАЗНДАТ" там нет (я хотел через справку разобраться в том как работает данная формула)

Hugo, спасибо. Сегодня смог открыть и просмотреть документ вместе с макросом. Возник вопрос:

With CreateObject("Scripting.Dictionary")
For i = 1 To UBound(a)
.Item(a(i, 2) & a(i, 3) & a(i, 4) & a(i, 5) & a(i, 6) & a(i, 7)) = CStr(1) мне где-то тут надо будет воткнуть формулу "=РАЗНДАТ(F2;СЕГОДНЯ();"y")", чтобы она вставлялась тоже автоматически после нажатия кнопки "ОК" ? (Я еще не ддочитал книгу))))


Автор - light26
Дата добавления - 07.03.2011 в 14:46
Serge_007 Дата: Понедельник, 07.03.2011, 14:57 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (light26)
...в 2007 эта формула хоть и работает, но функции "=РАЗНДАТ" там нет...

А её нигде нет.
Но она есть.
Это недокументированная функция Excel.
В справке ни одной версии Вы её не найдёте.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (light26)
...в 2007 эта формула хоть и работает, но функции "=РАЗНДАТ" там нет...

А её нигде нет.
Но она есть.
Это недокументированная функция Excel.
В справке ни одной версии Вы её не найдёте.

Автор - Serge_007
Дата добавления - 07.03.2011 в 14:57
light26 Дата: Понедельник, 07.03.2011, 15:46 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Serge_007)
Это недокументированная функция Excel. В справке ни одной версии Вы её не найдёте.

и за каким лядом excel так делает?

тогда объясните, пожалуйста, как она работает.
Как я понимаю из текущей даты (СЕГОДНЯ()) вычитается дата указанная в ячейке f2, а оператор "у" отсекает день и месяц, оставляя только год для расчета...
просто когда я попытался использовать =СЕГОДНЯ()-F2, результат вычисления меня не особо порадовал



Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Понедельник, 07.03.2011, 15:54
 
Ответить
Сообщение
Quote (Serge_007)
Это недокументированная функция Excel. В справке ни одной версии Вы её не найдёте.

и за каким лядом excel так делает?

тогда объясните, пожалуйста, как она работает.
Как я понимаю из текущей даты (СЕГОДНЯ()) вычитается дата указанная в ячейке f2, а оператор "у" отсекает день и месяц, оставляя только год для расчета...
просто когда я попытался использовать =СЕГОДНЯ()-F2, результат вычисления меня не особо порадовал


Автор - light26
Дата добавления - 07.03.2011 в 15:46
Serge_007 Дата: Понедельник, 07.03.2011, 15:57 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (light26)
бъясните, пожалуйста, как она работает.

Читайте здесь.
Кликнув по названию функции Вы попадёте на статью о ней.
В статье будут все ответы на Ваши вопросы.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (light26)
бъясните, пожалуйста, как она работает.

Читайте здесь.
Кликнув по названию функции Вы попадёте на статью о ней.
В статье будут все ответы на Ваши вопросы.

Автор - Serge_007
Дата добавления - 07.03.2011 в 15:57
Hugo Дата: Понедельник, 07.03.2011, 23:45 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Цитата (light26)
мне где-то тут

нет, не там. Dictionary используется для сравнения вводимых данных и существующих.
А функцию нужно добавить в самом конце, когда заносим данные.
В аттаче вариант для русского Экселя, а вот для всех:
[vba]
Код
    With Лист2
           .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 7)).Value = a
           .Cells(x + 1, 8).Formula = "=datedif(F" & x + 1 & ",today(),""y"")"
           .Cells(x + 1, 9).Formula = "=datedif(G" & x + 1 & ",today(),""y"")"
       End With
[/vba]
К сообщению приложен файл: 2823770.xls (51.5 Kb)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение
Цитата (light26)
мне где-то тут

нет, не там. Dictionary используется для сравнения вводимых данных и существующих.
А функцию нужно добавить в самом конце, когда заносим данные.
В аттаче вариант для русского Экселя, а вот для всех:
[vba]
Код
    With Лист2
           .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 7)).Value = a
           .Cells(x + 1, 8).Formula = "=datedif(F" & x + 1 & ",today(),""y"")"
           .Cells(x + 1, 9).Formula = "=datedif(G" & x + 1 & ",today(),""y"")"
       End With
[/vba]

Автор - Hugo
Дата добавления - 07.03.2011 в 23:45
light26 Дата: Вторник, 08.03.2011, 23:00 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Hugo, Спасибо еще раз. Пока, правда я ниче не понимаю в этих строках с командами, но обязательно научусь.... )


Я не волшебник. Я только учусь
 
Ответить
СообщениеHugo, Спасибо еще раз. Пока, правда я ниче не понимаю в этих строках с командами, но обязательно научусь.... )

Автор - light26
Дата добавления - 08.03.2011 в 23:00
light26 Дата: Воскресенье, 08.05.2011, 13:52 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Hugo, а можно подробненько описать действия данного макроса? Ну чтоб я сам мог менять его тело под разный тип списков?


Я не волшебник. Я только учусь
 
Ответить
СообщениеHugo, а можно подробненько описать действия данного макроса? Ну чтоб я сам мог менять его тело под разный тип списков?

Автор - light26
Дата добавления - 08.05.2011 в 13:52
light26 Дата: Среда, 22.06.2011, 21:55 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Hugo, прошу простить мою наглость, но не могли бы Вы разложить по полочкам "работу" этого макроса, чтобы я мог самостоятельно менять его тело под другие списки?
Заранее благодарю Вас.


Я не волшебник. Я только учусь
 
Ответить
СообщениеHugo, прошу простить мою наглость, но не могли бы Вы разложить по полочкам "работу" этого макроса, чтобы я мог самостоятельно менять его тело под другие списки?
Заранее благодарю Вас.

Автор - light26
Дата добавления - 22.06.2011 в 21:55
RAN Дата: Среда, 22.06.2011, 23:00 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А почему так?
Quote (light26)
"работу" этого макроса

Он что - не работает?
Надеюсь, Hugo не осерчает за разжевывание работы макроса.
В макросе 5 блоков with.
1 блок - собираем данные с листа2 в массив "a".
2 блок - на листе1 проверяем, все-ли заполнено, и если да - формируем запись "temp"
3 блок - создаем словарь с записями из данных массива "a" и проверяем, нет ли в нем записи "temp".
Если такой строки нет
4 блок - заносим данные из столбца "В" листа1 в массив "а"
5 блок - выгружаем данные из массива "а" в пустую строку на листе2, туда-же добавляем формулы
Напоследок Beep!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА почему так?
Quote (light26)
"работу" этого макроса

Он что - не работает?
Надеюсь, Hugo не осерчает за разжевывание работы макроса.
В макросе 5 блоков with.
1 блок - собираем данные с листа2 в массив "a".
2 блок - на листе1 проверяем, все-ли заполнено, и если да - формируем запись "temp"
3 блок - создаем словарь с записями из данных массива "a" и проверяем, нет ли в нем записи "temp".
Если такой строки нет
4 блок - заносим данные из столбца "В" листа1 в массив "а"
5 блок - выгружаем данные из массива "а" в пустую строку на листе2, туда-же добавляем формулы
Напоследок Beep!

Автор - RAN
Дата добавления - 22.06.2011 в 23:00
Hugo Дата: Четверг, 23.06.2011, 02:09 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Не осерчаю smile
Тем более, что я уже этот код забыл, и мне пришлось бы самому вычитывать код точно так же, как и RAN smile

Второй блок надо бы поставить первым - если MsgBox "Не всё заполнено!", то незачем массив формировать.
Могу чуть пояснить детали (сам сейчас вникал) - массив a формирую из уже заполненных данных второго листа плюс одна свободная строка, куда потом дополняются данные с первого листа.
Потом этот массив (что было плюс новая строка) выгружается назад на второй лист.
Можно было сделать иначе, но раз уж всё равно данные брались в массив для проверки по словарю, то сделал так - дополнил и выгрузил назад, кода писать меньше smile


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНе осерчаю smile
Тем более, что я уже этот код забыл, и мне пришлось бы самому вычитывать код точно так же, как и RAN smile

Второй блок надо бы поставить первым - если MsgBox "Не всё заполнено!", то незачем массив формировать.
Могу чуть пояснить детали (сам сейчас вникал) - массив a формирую из уже заполненных данных второго листа плюс одна свободная строка, куда потом дополняются данные с первого листа.
Потом этот массив (что было плюс новая строка) выгружается назад на второй лист.
Можно было сделать иначе, но раз уж всё равно данные брались в массив для проверки по словарю, то сделал так - дополнил и выгрузил назад, кода писать меньше smile

Автор - Hugo
Дата добавления - 23.06.2011 в 02:09
light26 Дата: Среда, 06.07.2011, 21:43 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
RAN, макрос-то работает. у меня голова не работает. я в макросах еще больший ноль, чем в формулах, а формул я знаю штук 10)))
поэтому, если конечно не трудно, поясните мне, пожалуйста, с "разложением по полочкам" и "разжевыванием" каждого этапа. так, чтобы в последствии я мог самостоятельно менять этот макрос под свои цели.
Спасибо


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Среда, 06.07.2011, 21:44
 
Ответить
СообщениеRAN, макрос-то работает. у меня голова не работает. я в макросах еще больший ноль, чем в формулах, а формул я знаю штук 10)))
поэтому, если конечно не трудно, поясните мне, пожалуйста, с "разложением по полочкам" и "разжевыванием" каждого этапа. так, чтобы в последствии я мог самостоятельно менять этот макрос под свои цели.
Спасибо

Автор - light26
Дата добавления - 06.07.2011 в 21:43
RAN Дата: Среда, 06.07.2011, 21:51 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Я вроде уже все разжевал. Что еще жевать - не знаю.
Если только из титьки накормить? Но у меня нет... biggrin
Могу порекомендовать немного познакомиться с VBA!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЯ вроде уже все разжевал. Что еще жевать - не знаю.
Если только из титьки накормить? Но у меня нет... biggrin
Могу порекомендовать немного познакомиться с VBA!

Автор - RAN
Дата добавления - 06.07.2011 в 21:51
light26 Дата: Среда, 06.07.2011, 21:59 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
RAN, да пробовал я. только сам не могу: на возникающие в процессе чтения книги вопросы, отвечать некому. а вопросы эти как снежный ком набираются. в итоге вообще ниче не понятно становится. платить за курсы, у меня денег нет таких, да и е рентабельно это (в моем случае). А знакомых, знающих VBA у меня нет (((
поэтому и прошу "разложить" и "разжевать"........


Я не волшебник. Я только учусь
 
Ответить
СообщениеRAN, да пробовал я. только сам не могу: на возникающие в процессе чтения книги вопросы, отвечать некому. а вопросы эти как снежный ком набираются. в итоге вообще ниче не понятно становится. платить за курсы, у меня денег нет таких, да и е рентабельно это (в моем случае). А знакомых, знающих VBA у меня нет (((
поэтому и прошу "разложить" и "разжевать"........

Автор - light26
Дата добавления - 06.07.2011 в 21:59
Serge_007 Дата: Воскресенье, 10.07.2011, 07:50 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеА книжку почитать?

Автор - Serge_007
Дата добавления - 10.07.2011 в 07:50
light26 Дата: Воскресенье, 10.07.2011, 08:58 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1350
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Serge_007)
А книжку почитать?

Quote (light26)
на возникающие в процессе чтения книги вопросы, отвечать некому. а вопросы эти как снежный ком набираются. в итоге вообще ниче не понятно становится


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (Serge_007)
А книжку почитать?

Quote (light26)
на возникающие в процессе чтения книги вопросы, отвечать некому. а вопросы эти как снежный ком набираются. в итоге вообще ниче не понятно становится

Автор - light26
Дата добавления - 10.07.2011 в 08:58
RAN Дата: Воскресенье, 10.07.2011, 11:18 | Сообщение № 20
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Берется любой макрос, ставятся точки останова, и пошагово проходим макрос.
При наведении курсора выплывающая подсказка показывает значение переменной или функции.

Алгоритм работы макроса я описал.
Что еще объяснять? Что означает запись a=b? surprised
К сообщению приложен файл: 8633263.jpg (56.6 Kb)


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

Сообщение отредактировал RAN - Воскресенье, 10.07.2011, 11:19
 
Ответить
СообщениеБерется любой макрос, ставятся точки останова, и пошагово проходим макрос.
При наведении курсора выплывающая подсказка показывает значение переменной или функции.

Алгоритм работы макроса я описал.
Что еще объяснять? Что означает запись a=b? surprised

Автор - RAN
Дата добавления - 10.07.2011 в 11:18
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Создание перечня по форме (После заполнения формы надо получить список.)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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