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

Вход

Регистрация

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

 

= Мир MS Excel/Если нельзя записать макрорекордером... - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Если нельзя записать макрорекордером...
light26 Дата: Четверг, 10.05.2012, 09:41 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Всем привет.
Удалил предыдущие посты. Слишком неудачны были.
Формулирую тему иначе.
Макрорекордером записать не получится, поэтому обращаюсь за помощью к вам, гении Excelя
На сервере формируется таблица и экспортируется в Excel. Чтобы привести ее в божеский вид я макрорекордером записал макрос (тело макроса во вложенном файле).
Структура таблицы не меняется, но количество строк всегда разное.
Требуется:
1. После работы макроса удалить пустую таблицу (выделена желтым). Ее размеры также могут меняться.
2. На втором листе сформировать короткую справку согласно приложенному примеру.
К сообщению приложен файл: disp_okna1.xls (100.0 Kb)


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

Сообщение отредактировал light26 - Четверг, 10.05.2012, 16:51
 
Ответить
СообщениеВсем привет.
Удалил предыдущие посты. Слишком неудачны были.
Формулирую тему иначе.
Макрорекордером записать не получится, поэтому обращаюсь за помощью к вам, гении Excelя
На сервере формируется таблица и экспортируется в Excel. Чтобы привести ее в божеский вид я макрорекордером записал макрос (тело макроса во вложенном файле).
Структура таблицы не меняется, но количество строк всегда разное.
Требуется:
1. После работы макроса удалить пустую таблицу (выделена желтым). Ее размеры также могут меняться.
2. На втором листе сформировать короткую справку согласно приложенному примеру.

Автор - light26
Дата добавления - 10.05.2012 в 09:41
shanemac51 Дата: Четверг, 10.05.2012, 11:30 | Сообщение № 2
Группа: Проверенные
Ранг: Новичок
Сообщений: 33
Репутация: 4 ±
Замечаний: 0% ±

light26,
откуда берутся данные предыдущей недели
 
Ответить
Сообщениеlight26,
откуда берутся данные предыдущей недели

Автор - shanemac51
Дата добавления - 10.05.2012 в 11:30
light26 Дата: Четверг, 10.05.2012, 16:52 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (shanemac51)
откуда берутся данные предыдущей недели

Смотрите лист "Короткая справка" во вложенном файле


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (shanemac51)
откуда берутся данные предыдущей недели

Смотрите лист "Короткая справка" во вложенном файле

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

2010
Ну и запросы! surprised
Я не знаю, что там записал рекордер, да и лень вычитывать, но уже одно форматирование строки с разным шрифтом уже не слабо. А тут еще взять с листа "2ч. 17мин", преобразовать в "2 часа 17 мин" и вставить в строку, найти в строке "2 часа 17 мин", преобразовать в "2:17", вставить в строку...
Тут макрос получится не короче того, что рекордер записал.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеНу и запросы! surprised
Я не знаю, что там записал рекордер, да и лень вычитывать, но уже одно форматирование строки с разным шрифтом уже не слабо. А тут еще взять с листа "2ч. 17мин", преобразовать в "2 часа 17 мин" и вставить в строку, найти в строке "2 часа 17 мин", преобразовать в "2:17", вставить в строку...
Тут макрос получится не короче того, что рекордер записал.

Автор - RAN
Дата добавления - 10.05.2012 в 17:11
Jhonson Дата: Четверг, 10.05.2012, 17:33 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Есть предложение, изменить вид "короткой справки", для упрощения, да и я думаю наглядности... К тому же макрос будет простой и короткий.
К сообщению приложен файл: disp_okna1.rar (22.5 Kb)


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеЕсть предложение, изменить вид "короткой справки", для упрощения, да и я думаю наглядности... К тому же макрос будет простой и короткий.

Автор - Jhonson
Дата добавления - 10.05.2012 в 17:33
light26 Дата: Четверг, 10.05.2012, 17:51 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
Я не знаю, что там записал рекордер, да и лень вычитывать, но уже одно форматирование строки с разным шрифтом уже не слабо

Макрос, записанный макрорекордером, никакого отношения к листу "Короткая справка" не имеет. Он всего лишь делает таблицу более аккуратной, чем та, что получается в результате экспорта.
К сообщению приложен файл: disp_okna.xls (90.0 Kb)


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (RAN)
Я не знаю, что там записал рекордер, да и лень вычитывать, но уже одно форматирование строки с разным шрифтом уже не слабо

Макрос, записанный макрорекордером, никакого отношения к листу "Короткая справка" не имеет. Он всего лишь делает таблицу более аккуратной, чем та, что получается в результате экспорта.

Автор - light26
Дата добавления - 10.05.2012 в 17:51
light26 Дата: Четверг, 10.05.2012, 18:03 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Jhonson)
Есть предложение, изменить вид "короткой справки"

Таможня дала добро ))))
Просто у нас начальство, как ни странно, не любит табличную форму. Поэтому я и не предлагал...
Сейчас отнес на одобрение - утвердили )))
Кстати, в этом случае, и макрос не нужен. Можно формулами справиться


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

Сообщение отредактировал light26 - Четверг, 10.05.2012, 18:05
 
Ответить
Сообщение
Quote (Jhonson)
Есть предложение, изменить вид "короткой справки"

Таможня дала добро ))))
Просто у нас начальство, как ни странно, не любит табличную форму. Поэтому я и не предлагал...
Сейчас отнес на одобрение - утвердили )))
Кстати, в этом случае, и макрос не нужен. Можно формулами справиться

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

2010
Без красивостей для 1 строки
[vba]
Code
Sub qqq()
With Sheets(1)
d163 = .Cells(163, "D")
e163 = .Cells(163, "E")
End With
txt = Split(Cells(4, 1))
txt(33) = "(" & txt(31)
txt(31) = d163 - e163
txt(25) = "(" & txt(23)
txt(23) = e163
txt(15) = txt(12)
txt(12) = d163
Cells(4, 1) = Join(txt)
End Sub
[/vba]


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

Сообщение отредактировал RAN - Четверг, 10.05.2012, 18:04
 
Ответить
СообщениеБез красивостей для 1 строки
[vba]
Code
Sub qqq()
With Sheets(1)
d163 = .Cells(163, "D")
e163 = .Cells(163, "E")
End With
txt = Split(Cells(4, 1))
txt(33) = "(" & txt(31)
txt(31) = d163 - e163
txt(25) = "(" & txt(23)
txt(23) = e163
txt(15) = txt(12)
txt(12) = d163
Cells(4, 1) = Join(txt)
End Sub
[/vba]

Автор - RAN
Дата добавления - 10.05.2012 в 18:03
light26 Дата: Четверг, 10.05.2012, 18:17 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
RAN, спасибо, но это не совсем то.
Дело в том, что количество строк в таблице постоянно меняется и не факт, что на следующей неделе данные нужно будет забирать из 163 строки.
Если бы все было так просто, я бы и макрорекордером записал.


Я не волшебник. Я только учусь
 
Ответить
СообщениеRAN, спасибо, но это не совсем то.
Дело в том, что количество строк в таблице постоянно меняется и не факт, что на следующей неделе данные нужно будет забирать из 163 строки.
Если бы все было так просто, я бы и макрорекордером записал.

Автор - light26
Дата добавления - 10.05.2012 в 18:17
Jhonson Дата: Четверг, 10.05.2012, 18:57 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Для того чтобы узнать из какой строки забирать данные замени этот кусок кода:
[vba]
Code
With Sheets(1)
   d163 = .Cells(163, "D")
   e163 = .Cells(163, "E")
End With
[/vba]
на этот:
[vba]
Code
With Sheets(1)
last_cell=.Rows(65536).End(xlUp).Row
   d163 = .Cells(last_cell, "D")
   e163 = .Cells(last_cell, "E")
End With
[/vba]
Должно помочь!


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Четверг, 10.05.2012, 18:57
 
Ответить
СообщениеДля того чтобы узнать из какой строки забирать данные замени этот кусок кода:
[vba]
Code
With Sheets(1)
   d163 = .Cells(163, "D")
   e163 = .Cells(163, "E")
End With
[/vba]
на этот:
[vba]
Code
With Sheets(1)
last_cell=.Rows(65536).End(xlUp).Row
   d163 = .Cells(last_cell, "D")
   e163 = .Cells(last_cell, "E")
End With
[/vba]
Должно помочь!

Автор - Jhonson
Дата добавления - 10.05.2012 в 18:57
light26 Дата: Четверг, 10.05.2012, 20:39 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
За истекший период дистанциями электроснабжения для работ на контактной сети было заявлено 543 «окна» против 543 на прошлой неделе, из которых было отменено46 46 (35 («окон» прошлой неделе). Фактически отработано 497 497 (313 («окон» прошлой неделе).

Вот что получилось. Где-то макрос спотыкается


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

Сообщение отредактировал light26 - Пятница, 11.05.2012, 17:47
 
Ответить
СообщениеЗа истекший период дистанциями электроснабжения для работ на контактной сети было заявлено 543 «окна» против 543 на прошлой неделе, из которых было отменено46 46 (35 («окон» прошлой неделе). Фактически отработано 497 497 (313 («окон» прошлой неделе).

Вот что получилось. Где-то макрос спотыкается

Автор - light26
Дата добавления - 10.05.2012 в 20:39
light26 Дата: Четверг, 10.05.2012, 20:53 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
а через ВПР нельзя? Я про образец, предложенный Jhonsonом
Code
=ВПР("итого по э";disp_okna!A:V;4;ЛОЖЬ)
К сообщению приложен файл: 3720738.xls (97.5 Kb)


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

Сообщение отредактировал light26 - Четверг, 10.05.2012, 21:36
 
Ответить
Сообщениеа через ВПР нельзя? Я про образец, предложенный Jhonsonом
Code
=ВПР("итого по э";disp_okna!A:V;4;ЛОЖЬ)

Автор - light26
Дата добавления - 10.05.2012 в 20:53
Jhonson Дата: Четверг, 10.05.2012, 21:48 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Так на много проще! А для прошлой недели одну строчку макроса:
[vba]
Code
Public Sub light26()
Range("C2:C12").Value = Range("B2:B12").Value
End Sub
[/vba]


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеТак на много проще! А для прошлой недели одну строчку макроса:
[vba]
Code
Public Sub light26()
Range("C2:C12").Value = Range("B2:B12").Value
End Sub
[/vba]

Автор - Jhonson
Дата добавления - 10.05.2012 в 21:48
MCH Дата: Четверг, 10.05.2012, 21:53 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Вадим, а может сразу сделать отчет в ворде, сделать необходимый шаблон .doc(.dot/.docx) и сформировать по нему отчетный документ
В качестве генератора документа можно взять макрос: http://excelvba.ru/code/CreateWordDocuments или http://excelvba.ru/programmes/FillDocuments
При этом можно сформировать красивый отчет в текстовом редакторе с нужным форматированием текста и т.п.
Исходные данные в Excel можно будет и формулами подготовить
 
Ответить
СообщениеВадим, а может сразу сделать отчет в ворде, сделать необходимый шаблон .doc(.dot/.docx) и сформировать по нему отчетный документ
В качестве генератора документа можно взять макрос: http://excelvba.ru/code/CreateWordDocuments или http://excelvba.ru/programmes/FillDocuments
При этом можно сформировать красивый отчет в текстовом редакторе с нужным форматированием текста и т.п.
Исходные данные в Excel можно будет и формулами подготовить

Автор - MCH
Дата добавления - 10.05.2012 в 21:53
light26 Дата: Четверг, 10.05.2012, 22:08 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (MCH)
сделать отчет в ворде

Миш, да он сейчас и есть в ворде. Только вот надоело мне каждую неделю время убивать на формирование нового отчета. Что касается предложенных тобой ссылок, спасибо. Я позже гляну что там есть.


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (MCH)
сделать отчет в ворде

Миш, да он сейчас и есть в ворде. Только вот надоело мне каждую неделю время убивать на формирование нового отчета. Что касается предложенных тобой ссылок, спасибо. Я позже гляну что там есть.

Автор - light26
Дата добавления - 10.05.2012 в 22:08
light26 Дата: Пятница, 11.05.2012, 13:27 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Jhonson)
Так на много проще! А для прошлой недели одну строчку макроса:

Не на много.
Рассказываю:
1 этап. На сервере формируется отчет.
2 этап. С сервера отчет экспортируется в Excel. Но внешний вид этой таблицы корявый, поэтому
3 этап. Макрос, записанный через макрорекордер, форматирует таблицу, изменяя ее внешний вид.
4 этап. Я распечатываю таблицу и вручную меняю значения в вордовском файле короткой справки.
смотрим файлы

Проще говоря, макрос после корректировки внешнего вида таблицы должен создавать второй лист и туда собирать информацию для короткой справки
К сообщению приложен файл: 4360029.xls (90.0 Kb) · __.xls (62.0 Kb)


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

Сообщение отредактировал light26 - Пятница, 11.05.2012, 13:30
 
Ответить
Сообщение
Quote (Jhonson)
Так на много проще! А для прошлой недели одну строчку макроса:

Не на много.
Рассказываю:
1 этап. На сервере формируется отчет.
2 этап. С сервера отчет экспортируется в Excel. Но внешний вид этой таблицы корявый, поэтому
3 этап. Макрос, записанный через макрорекордер, форматирует таблицу, изменяя ее внешний вид.
4 этап. Я распечатываю таблицу и вручную меняю значения в вордовском файле короткой справки.
смотрим файлы

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

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

2007, 2010, 2013
Quote (MCH)
В качестве генератора документа можно взять макрос

Тема хорошая. Буду применять. Но для решения этой задачи она не подходит.
Дело в том, что в моей таблице Excel число столбцов не изменяется, а число строк всегда разное. К тому же в короткой справке есть данные, которые можно получить только путем вычислений, пусть даже простейших.
Предлагаемый на сайте метод позволяет использовать экспортировать только с шаблона Excel в Word.
Если структура таблицы Excel меняется, то надо менять и значения в коде.


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

Сообщение отредактировал light26 - Пятница, 11.05.2012, 18:47
 
Ответить
Сообщение
Quote (MCH)
В качестве генератора документа можно взять макрос

Тема хорошая. Буду применять. Но для решения этой задачи она не подходит.
Дело в том, что в моей таблице Excel число столбцов не изменяется, а число строк всегда разное. К тому же в короткой справке есть данные, которые можно получить только путем вычислений, пусть даже простейших.
Предлагаемый на сайте метод позволяет использовать экспортировать только с шаблона Excel в Word.
Если структура таблицы Excel меняется, то надо менять и значения в коде.

Автор - light26
Дата добавления - 11.05.2012 в 17:59
  • Страница 1 из 1
  • 1
Поиск:

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