Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
01.08.2006, 21:03
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
Очень нужно узнать реально ли в экселе при помощи макросов сделать следующую операцию: Есть журнал. В нем есть графа даты, графа номера, графа имени и название. Нужно, чтобы выводились (или в новом документе или в новом окне) данные вписанные месяц назад. Т.е. 30 дней. Реально ли это сделать при помощи макросов и если да, то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2006, 22:07
|
|||
---|---|---|---|
Эксель и макросы |
|||
#18+
Это можно сделать и без макросов - с помощью структуры документа. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.08.2006, 09:52
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
конечно, можно. самый простой способ - тупо перебрать все строчки, и там, где дата укладывается в диапазон прошлого месяца - выводить на отдельный лист (или в отдельную книгу), который можно создать самим же макросом. типа так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
естественно возможны варианты - типа копировать через буфер обмена всю строку целиком А можно сделать еще проще, и без всяких макросов: отсортировать по полю дата, и выкопировать те строки, которые удовлетворяют нужному условию - их оч. легко выделить из списка визуально ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.08.2006, 07:40
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
Спасибо за помощь! Сейчас попробую. А вообще на счет сортировки - я уже думал, просто надо чтоб минимум действий и времени тем более что журнал большой, а комп - слабенький. Плюс сортировка там должна быть по другому столбцу. Я просто думал что если скриптом сделать, то потом можно скинуть на панель управления в виде кнопки. И чтоб было вообще все просто. Т.е. пользователь жмет кнопку на панели, включается макрос, и создается лист в котором вписаны результаты. Такое сложно сделать? Нет, ну как макрос в кнопку приделать - знаю. Мне просто нужен сам макрос. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.08.2006, 07:47
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
И еще. У тебя в макросе нужно именно задавать координаты месяца. Т.Е. перед каждым использованием макроса надо менять диапазон? Реально ли его автоматичиским сделать? Как нить типа Datenow-30 http://www.sql.ru/forum/images/happy.gif И еще вопрос как через буфер сделать? На самом деле задача очень даже простая и вариантов решения много. Плюс я нашел часть скрипта, для определения даты и удаления страницы. мож его хоть как-то изменить и тогда что-нить выйдет? Просто в программировании профан. Но в принципе действия все понимаю, а вот сам написать не могу ничего путного =( Вот тот макрос: ' Function DelSheetByDate ' Удаляет рабочий лист sSheetName в активной рабочей книге, ' если дата dDelDate уже наступила ' В случае успеха возвращает True, иначе - False Public Function DelSheetByDate(sSheetName As String, _ dDelDate As Date) As Boolean On Error GoTo errHandle DelSheetByDate = False ' Проверка даты If dDelDate <= Date Then ' Не выводить подтверждение на удаление Application.DisplayAlerts = False ActiveWorkbook.Worksheets(sSheetName).Delete DelSheetByDate = True Application.DisplayAlerts = True End If Exit Function errHandle: MsgBox Err.Description, vbCritical, "Ошибка №" & Err.Number End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.08.2006, 19:02
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
Так что, кто-нить может помочь? Ну или хотябы наисать макрос копирования результатов на следующую страницу и автоматического отсчета 30 дней ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.08.2006, 08:34
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
WhisperТак что, кто-нить может помочь? Ну или хотябы наисать макрос копирования результатов на следующую страницу и автоматического отсчета 30 дней Я сам не профи, но попробую тебе помочь. Скинь свою таблицу сюда ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.08.2006, 22:10
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
Evrodiller WhisperТак что, кто-нить может помочь? Ну или хотябы наисать макрос копирования результатов на следующую страницу и автоматического отсчета 30 дней Я сам не профи, но попробую тебе помочь. Скинь свою таблицу сюда Не могу скинуть. Ну а смысл обычный - 4-5 граф, одна из которых (первая) - даты типа ddmmyy. Вот и все. остальные - текстовые. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.08.2006, 22:11
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
Evrodiller WhisperТак что, кто-нить может помочь? Ну или хотябы наисать макрос копирования результатов на следующую страницу и автоматического отсчета 30 дней Я сам не профи, но попробую тебе помочь. Скинь свою таблицу сюда Не могу скинуть. Ну а смысл обычный - 4-5 граф, одна из которых (первая) - даты типа ddmmyy. Вот и все. остальные - текстовые. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.08.2006, 00:21
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
в принципе пример приведенный выше: sub CreateReport () dim WS as Worksheet dim WS1 as worksheet set WS = ActiveSheet 'это тот лист, на котором лежит реестр Worksheets.Add set WS1 = Activesheet rownum=2 'D1 и D2 - это даты границ пред.месяца D1 = DateSerial(2006,6,30) D2 = DateSerial(2006,8,1) for I = 2 to WS.Range("A65536").End(xlUp).Row if WS.Cells(I,1).Value > D1 and WS.Cells(I,1).Value < D2 then 'предположим, что дата в колонке 1 WS1.Cells(rownum,1).Value = WS.Cells(I,1).Value WS1.Cells(rownum,2).Value = WS.Cells(I,2).Value WS1.Cells(rownum,3).Value = WS.Cells(I,3).Value WS1.Cells(rownum,4).Value = WS.Cells(I,4).Value rownum=rownum+1 end if next end sub Очень дажен неплох. Надо только придумать автоматический отсчет даты. Чтоб не вписывать каждый раз диапазон ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.08.2006, 23:40
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
А если попробовать что-нибудь типа такого, работать будет? Public Shared Sub Main() Dim window As Integer = 10 Dim freq As Integer = 60 * 60 * 30 // месяц; Dim d1 As DateTime = DateTime.Now Dim d2 As DateTime = d1.AddMonth((1*freq)) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.08.2006, 08:43
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
WhisperА если попробовать что-нибудь типа такого, работать будет? Public Shared Sub Main() Dim window As Integer = 10 Dim freq As Integer = 60 * 60 * 30 // месяц; Dim d1 As DateTime = DateTime.Now Dim d2 As DateTime = d1.AddMonth((1*freq)) Уважаемый Whisper! зачем придумывать то, что уже реализовано? я если честно так и не понял, зачем из реестра выбирать данные, которые от текущей даты отстоят на месяц... но вычислить дату можно так: DateLM = DateSerial(Year(Date),Month(Date)-1,Day(Date)) правда могут быть проблемы, если 31 октября вычислять 8) на кнопку повесить просто: запиши макрос через сервис-запись макроса (или как там еще), прилепи его на кнопку, а потом внутрь этого записанного макроса (между директивами Sub и End sub) вставь то, что тебе нужно. вот макрос будет работать на кнопке. А чтобы нормально получалось программировать - попробуй описать последовательность действий обычным русским языком - перевести потом в код будет проще. искать решения более узких задач проще, чем широких 8) ну и книжек купи по екселю и макросам - невредно совсем будет их почитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.08.2006, 09:05
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
да, чтобы код заработал правильно, нужно изменить условие отбора записей в макросе, который я написал: дата в проверяемой строке должна быть равна DateLM з.ы. лучше не пользуйся теми заготовками, смысл которых понять не можешь хотябы приблизительно. выйдет боком в самом неожиданном месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.11.2012, 11:53
|
|||
---|---|---|---|
|
|||
Эксель и макросы |
|||
#18+
Добрый день. В таблице есть столбец "Состояние дела" значение ячеек повторяются (На рассмотрении, отказ, выплачено, ожидание документов, письмо страхователю) Помогите написать макрос, чтобы каждая повторяющая ячейка, была выделена своим цветом ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=61&tablet=1&tid=2175215]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 313ms |
total: | 465ms |
0 / 0 |