Слэн, огромное спасибо за помощь - все работает!
VBA + условное форматирование
VBA + условное форматирование
21.09.2013 00:10:54
Уважаемые знатоки, прошу вашей помощи в следующей проблеме:
При добавлении УФ (с с формулой ниже) в ячейку H8 с помощью VBA-макроса оно не срабатывает до тех пор, пока не зайдешь в редактирование условия УФ и нажмешь ОК (при этом само условие не изменяя) Формула:
Код:
В чем может быть причина? Заранее спасибо за помощь!
Изменено: |
|||||
|
СУММПРОИЗВ () + СТРОКА()
СУММПРОИЗВ () + СТРОКА()
17.09.2013 00:58:12
Ок, тогда возникает следующий вопрос: почему при добавлении УФ (с данной формулой) с помощью VBA-макроса оно не срабатывает до тех пор, пока не зайдешь в редактирование условия УФ и нажмешь ОК (при этом само условие не изменяя)?
См. пример. Заранее спасибо за помощь!
Изменено: |
|
|
СУММПРОИЗВ () + СТРОКА()
СУММПРОИЗВ () + СТРОКА()
16.09.2013 21:54:20
Уважаемые знатоки!
Прошу Вашей помощи в следующей проблеме: при использовании функции СТРОКА, внутри функции СУММПРОИЗВ, формула выдает значение #ЗНАЧ!. При явном указании номера строки - все считается корректно (см. пример). Задача следующая: проверить, случается ли превышение дневных расходов над дневными доходами в течение следующих 21 дней (от текущей даты). P.S. Дополнительные строки добавить нельзя, формулы массива также просьба не предлагать, так как данная формула будет использоваться в условном форматировании. За пояснения, почему функция СТРОКА не желает работать - буду отдельно благодарен ![]() Заранее огромное спасибо! |
|
|
СУММПРОИЗВ данных в нескольких столбцах
СУММПРОИЗВ данных в нескольких столбцах
23.07.2012 22:14:42
Уважаемые знатоки, прошу вашей помощи.
Поступают данные по продажам нескольких товаров в таком виде, как в примере (изменить формат, увы, возможности нет никакой), причем один и тот же товар может продаваться по разной цене. Необходимо посчитать выручку (цена*количество продаж) по каждому товару за определенную дату (для примера по товару Good 2 за 01.08.2012). Очень надеюсь на вашу помощь с формулой. Заранее спасибо! |
|
|
При открытии файла excel c поддержкой макросов происходит ошибка и требует восстановления
Offtop: VBA Outlook 2003 - переключение редактора сообщений
Offtop: VBA Outlook 2003 - переключение редактора сообщений
29.06.2012 16:53:24
В ООН может бы и обратился, да адреса не знаю :)
Обратился на данный форум, потому что тут есть спецы по VBA, которые знают не только объектную модель Excel, но и Outlook. Чтобы быть ближе к теме форума, скажу, что в качестве вложения в сформированном письме будет EXCEL-файл :))) |
|
|
Offtop: VBA Outlook 2003 - переключение редактора сообщений
29.06.2012 16:39:07
Уважаемые знатоки, заранее приношу извинения, что на форуме Excel задаю вопрос по Outlook 2003, но вся надежда только на вас.
Необходимо программно изменить используемый редактор сообщений с встроенного на Word, а затем обратно. Ручками это делается в настройках (скрин во вложении), можно ли это осуществить программно кодом на VBA. Копаю сейчас в сторону .EditorType = olEditorWord, но пока что-то не получается. Надеюсь на вашу помощь, заранее спасибо! |
|
|
VBA: передача значения переменной
VBA: передача значения переменной
23.05.2012 23:59:25
На всякий случай приведу пример кода, может будут какие-то идеи?
код Excel: Public strPath as String sub Test() ... strPath = Application.GetSaveAsFilename(InitialFileName:="Test", fileFilter:="Excel Files (*.xls), *.xls", Title:="Save") Outlook.Application.macro1 End sub код в Outlook: Public Sub macro1() ... With OutMail .Attachments.Add (strPath) .Display End With Как передать значение переменной strPath? |
|
|
VBA: передача значения переменной
22.05.2012 07:41:36
{quote}{login=Юрий М}{date=22.05.2012 12:00}{thema=}{post}А обычная глобальная переменная не срабатывает?{/post}{/quote}
Нет, потому что областью видимости глобальной переменной является проект, в модуле которого она объявлена. А задача состоит в том, чтобы передать значение переменной из проекта Excel в проект Outlook. |
|
|
VBA: передача значения переменной
VBA: передача значения переменной
21.05.2012 23:28:38
Уважаемые знатоки, может вопрос и простой, но как передать значение переменной из процедуры Excel процедуру Outlook?
То есть необходимо следующее: выполняется код в Excel, в ходе выполнения присваивается значение переменной, далее запускается код в Outlook, в который передается значение переменной, вычисленной в Excel. Заранее спасибо! |
|
|
VBA: копирование массива в буфер обмена
VBA: копирование массива в буфер обмена
VBA: копирование массива в буфер обмена
VBA: копирование массива в буфер обмена
06.05.2012 13:08:16
Уважаемые знатоки, прошу помощи. К сожалению поиском не нашел похожей темы.
Задача следующая: скопировать в буфер обмена одномерный массив, для того, чтобы его можно было вставить в виде таблицы в совершенно другое приложение. Dim a(1 To 5) As String a(1) = test_1 a(2) = test_2 a(3) = test_3 a(4) = test_4 a(5) = test_5 Заранее спасибо за помощь! |
|
|
VBA: фильтр сводной таблицы
06.12.2011 08:13:59
{quote}{login=ZVI}{date=05.12.2011 07:19}{thema=}{post}{quote}{login=Darkman}{date=05.12.2011 01:33}{thema=Re: }{post}P.S. На всякий случай: Excel 2010 SP1{/post}{/quote}
Файл и сводная таблица были в формате Excel 2003, в этой версии все работает. Начиная с Excel 2007 сводные таблицы претерпели значительные изменения. Но при работе с полями даты, содержащими пустые ячейки, появились проблемы с программным скрытием/отображением элементов. Для исключения проблем лучше всего указывать динамический диапазон данных с исключением пустых ячеек в поле даты. Приложил исправленный таким образом файл из post_284932.zip Код немного обновлен.{/post}{/quote} Действительно, в Excel 2003 работает без проблем, проблемы начинаются только с 2007. Спасибо Вам! |
|
|
VBA: фильтр сводной таблицы
05.12.2011 02:05:41
{quote}{login=Михаил С.}{date=05.12.2011 01:14}{thema=}{post}Уж, поскольку нашел, покажу и свое решение.
Вот тема, где решается подобный вопрос, но только чисто для 2010. Мне кажется, что самый первый файл подойдет и к более ранним версиям - проверить не могу, т.к. все их (и 2007, и 2003) снес, надоели. На всякий случай перевел этот файл в формат 2003.{/post}{/quote} Спасибо, интересное решение, возьму на вооружение. |
|
|
VBA: фильтр сводной таблицы
05.12.2011 02:00:29
{quote}{login=AKSENOV048}{date=05.12.2011 01:34}{thema=Re: Re: }{post}
пробуйте!{/post}{/quote} Сработало, а у меня почему-то не получилось, хотя через спецвставку и умножал на 1. Опишите алгоритм Ваших действий. Хотя смысл данного преобразования мне, в данном конкретном случае, и не совсем понятен. |
|
|
VBA: фильтр сводной таблицы
05.12.2011 01:33:06
{quote}{login=ZVI}{date=05.12.2011 01:21}{thema=}{post}Для того, чтобы программно установить фильтр поля сводной таблицы, необходимо сначала установить параметр сортировки поля = "вручную (разрешается перетаскивание)", а в конце восстановить сортировку поля. Этот факт малоизвестен.
При тестировании я исправил этот параметр вручную, поэтому приведенный выше код сработал корректно. Чтобы все устанавливалось автоматически, нужен такой вариант кода: Sub Макрос1() Dim i As Long, SortOrder, SortField Application.ScreenUpdating = False ОбновлятьФильтрыСводнойТаблицы '<-- Достаточно выполнить один раз With Sheets(1).PivotTables("summary") .ManualUpdate = True With .PivotFields("дата") SortOrder = .AutoSortOrder SortField = .AutoSortField If SortOrder <> xlManual Then .AutoSort xlManual, SortField For i = 1 To .PivotItems.Count With .PivotItems(i) If IsDate(.Value) Then .Visible = .Value >= #12/15/2011# End If End With Next If SortOrder <> xlManual Then .AutoSort SortOrder, SortField End With .ManualUpdate = False End With Application.ScreenUpdating = True End Sub ' См. Sub ОбновлятьФильтрыСводнойТаблицы() Dim x For Each x In ActiveWorkbook.PivotCaches x.MissingItemsLimit = xlMissingItemsNone x.Refresh Next End Sub{/post}{/quote} Та же ошибка, что я делаю не так? P.S. На всякий случай: Excel 2010 SP1 |
|
|
VBA: фильтр сводной таблицы
VBA: фильтр сводной таблицы
05.12.2011 01:15:19
{quote}{login=ZVI}{date=05.12.2011 12:56}{thema=}{post}А чтобы не мигало:
Sub Макрос1() Application.ScreenUpdating = False ОбновлятьФильтрыСводнойТаблицы '<-- Достаточно выполнить один раз Dim i As Long With Sheets(1).PivotTables("summary").PivotFields("дата") For i = 1 To .PivotItems.Count With .PivotItems(i) If IsDate(.Value) Then .Visible = .Value >= #12/15/2011# End If End With Next End With Application.ScreenUpdating = True End Sub{/post}{/quote} Выдает ту же ошибку :((((((((((((((( |
|
|
VBA: фильтр сводной таблицы
05.12.2011 00:45:15
{quote}{login=R Dmitry}{date=05.12.2011 12:29}{thema=}{post}списываем на очередной баг мелкософта :)){/post}{/quote}
Списать я не против :) Вот только обойти это как-то нужно, проект стоит из-за этой, казалось бы, мелочи. Может есть еще какие-нибудь способы отфильтровать сводную таблицу с помощью VBA? |
|
|
VBA: фильтр сводной таблицы
04.12.2011 21:34:42
{quote}{login=R Dmitry}{date=04.12.2011 02:37}{thema=}{post}глюкнутая у Вас сводная, создайте новую{/post}{/quote}
Для тестового примера это сработало, а вот для рабочего файла, почему-то нет. Полностью удалял лист со сводной таблицей и создавал заново, безрезультатно :-( Причем ошибка возникает исключительно с полем даты, на других полях работает без проблем. Опытным путем выяснил, что ошибка выдается на всех датах, кроме 12.12.2011. Есть у кого-нибудь идеи, что это может быть? |
|
|
VBA: фильтр сводной таблицы