Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
ВБА Ошибка при выборе значений в фильтре олап, заданного переменной, ошибка: query (1,34) синтаксический анализатор: неверный синтаксис ","
 
Добрый день!
Прописываю коды товаров, которые мне необходимо выбрать в фильтре куба олап.
Если задаю необходимый выбор переменной, выдает ошибку.
Но если вывожу результат переменной в ячейку, вручную вставляю результат ячейки в макрос, всё работает.
Также, если в процедуре ссылаюсь на саму ячейку с результатом, выдает ошибку: query (1,34) синтаксический анализатор: неверный синтаксис ","

В чем может быть проблема?

Вот два кода: работающий и нет. Файл не прикладываю по понятным причинам (не сможете проверить результат).

С помощью переменной - не работает:
Код
Sub isklucheniya()
    'формирование переменной с одним кодом товара
    iskl = """[Товары].[Код Товара].&[" & Worksheets("список исключения").Cells(2, 1) & "]"""
    'формирование переменной, добавляя остальные коды товаров
    For i = 3 To 7
        iskl = iskl & ", " & """[Товары].[Код Товара].&[" & Worksheets("список исключения").Cells(i, 1).Value & "]"""
    Next i
    'запись результата переменной в ячейку
    Worksheets("список исключения").Cells(2, 5) = iskl
    'включение в фильтр олапа кодов товаров с помощью переменной
    Worksheets("олап_выполнение планов").PivotTables("СводнаяТаблица2").PivotFields( _
        "[Товары].[Код Товара].[Код Товара]").VisibleItemsList = Array(iskl)
End Sub

С помощью записи в код результата переменной из ячейки вручную - работает:
Код
Sub isklucheniya()
    'формирование переменной с одним кодом товара
    iskl = """[Товары].[Код Товара].&[" & Worksheets("список исключения").Cells(2, 1) & "]"""
    'формирование переменной, добавляя остальные коды товаров
    For i = 3 To 7
        iskl = iskl & ", " & """[Товары].[Код Товара].&[" & Worksheets("список исключения").Cells(i, 1).Value & "]"""
    Next i
    'запись результата переменной в ячейку
    Worksheets("список исключения").Cells(2, 5) = iskl
    'включение в фильтр олапа кодов товаров с помощью переменной
    Worksheets("олап_выполнение планов").PivotTables("СводнаяТаблица2").PivotFields( _
        "[Товары].[Код Товара].[Код Товара]").VisibleItemsList = Array("[Товары].[Код Товара].&[186338]", "[Товары].[Код Товара].&[58727]", "[Товары].[Код Товара].&[195193]", "[Товары].[Код Товара].&[136548]", "[Товары].[Код Товара].&[176629]", "[Товары].[Код Товара].&[184742]")
End Sub

В теле письма: Текст + Гиперссылка + Текст, с помощью ВБА
 
Добрый день!
Помогите, пожалуйста, решить проблему с отправкой письма с помощью ВБА.
Суть состоит в том, что в макросе эксель прописано сохранение отчета с последующей отправкой письма.
В теле письма должен быть текст (текст и текст, заданный переменной), далее гиперссылка, потом снова текст (текст и текст, заданный переменной).
В макросе, прописанном мной, при отправлении исчезают переносы на следующую строку с промежутками между строк, а также конец текста письма прописывается тоже как гиперссылка.
Файл с кодом прикладываю.

В результате моего кода получается:
Привет! Обновлен отчет по прогнозу выполнения планов на текущий месяц для филиалов Новосибирск, Иркутск. C:\Users\i.ivanova\Desktop - Август 2017 новая_авто

А должно получиться вот так:
Привет!
Обновлен отчет по прогнозу выполнения планов на текущий месяц для филиалов Новосибирск, Иркутск.
C:\Users\i.ivanova\Desktop - Август 2017 новая_авто

Подскажите, пожалуйста, как написать, чтобы получить необходимый результат.
Изменено: Atir - 21.08.2017 09:14:22 (поменяла код в приложенном файле и текст задачи)
Выбрать в фильтре отчета сводной элементы с другого листа, с помощью VBA
 
Добрый день!
Не могу справиться с задачей, подскажите, пожалуйста:
Необходимо в фильтре отчета сводной таблицы выбрать те элементы, которые вынесены списком на отдельном листе.
Естественно, список может меняться по своему составу и количеству элементов.
Пример:
В фильтре отчета сводной таблицы на листе "сводная" выбрать элементы, указанные на листе "данные для фильтра".
Найти недостающие связки
 
Добрый день, товарищи!
Буду благодарна, если поможете.
Даны коды клиентов, которым соответствуют наши коды.
Но это неполный список,- необходимо указать недостающие связки.
Например, есть код клиента 1, ему соответствуют наши коды 100, 200,300. Есть код клиента 3, ему соответствуют коды 100 и 400.
Если а) коду 1 соответствуют коды 100, 200 и 300, а коду 3 - 100 и 400; б) код 100 есть у кода клиента 1 и 3, то у кодов 1 и 3 должны быть идентичные наши коды (у обоих клиентов должны быть коды 100, 200, 300, 400).
В результате должны отобразиться недостающие связки код клиента - наш код: 1 - 400, 3 - 200, 3 - 300, как показано в примере.
Продублировать свойства по пересечениям
 
Добрый день!
Не могу придумать алгоритм решения задачи.
Если у Вас будут мысли по ее решению, буду очень признательна.

Условие задачи:
Есть список продуктов, каждый из которых обладает свойствами.
Если хотя бы одно из свойств первого продукта присутствует у второго продукта, то первый продукт должен обладать всеми свойствами второго продукта.
Например:
Яблоко: здоровье, витамины, вкус
Помидор: вкус
В результате:
Вкус, свойство которым обладает помидор, присутствует у яблока.
Поэтому помидор будет обладать всеми свойствами яблока.

Прикладываю файл с примером (заливка и цвет шрифта добавила для наглядности,- они не должны играть роль в решении).
Проверка значения по строкам, с помощию ВБА
 
Добрый день!
Возможно, кто-то мне сможет подсказать )

Есть две колонки с данными: в первой колонке товар, во второй значение (+ / - / пусто).
Необходимо отобрать товары, по которым во всех строках будет только + или пусто.

В моем макросе отбираются все строки с товарами, по которым стоит + или пусто.
Подскажите, пожалуйста, как мне получить в результате те товары, у которых ни по одной из строк не будет значения "-".

Мой макрос:
Код
пример1.xlsm Sub uslovie()
    konec = Cells(Rows.Count, 2).End(xlUp).Row
   
    For i = 5 To konec
        If Cells(i, 3) = "" Then
            Cells(i, 3) = "+" 'в пустые ячейки проставить +
        End If
    
        If Cells(i, 3) = "+" Then
            vstavka = Cells(Rows.Count, 10).End(xlUp).Row + 1
            Cells(vstavka, 10) = Cells(i, 2)
        End If  
    Next i
End Sub

Файлы удалены: превышение допустимого размера вложения [МОДЕРАТОР]
Изменено: Atir - 16.11.2016 10:22:23
Отобрать при выполнении условия по всем строкам, с помощию ВБА
 
Добрый день!
Подскажите, пожалуйста, как можно прописать выполнение следующей процедуры.

Условие задачи:
Допустим, есть продукты (колонка "Продукт: помидор, яблоко, малина"), которые необходимо каждый день развозить по магазинам (колонка "Магазин": 1, 2, 3, 4).
Но необходима проверка, по всем ли магазинам развезли продукт на текущий день (колонка "дата прихода").

В результате необходимо отыскать продукты, которые были развезены по всем магазинам на текущий день.

уточнение: если ячейка с датой пустая, то следует считать, что условие по ней выполнено.

Решение:
В моей процедуре идет проверка дат из колонки "дата прихода" по номеру дня и номеру месяца.
Далее все строки с актуальной датой отбираются (в пустую ячейку автоматически прописываю сегодняшнюю дату).
Но как проверить продукты по всем строкам с датами, и в результате получить только две строки, вызывает у меня затруднение.
Подскажите, пожалуйста.

Файл с примером и моим макросом прилагаю.
Изменено: Rita - 15.11.2016 11:32:18
VBA. Ошибка: run-time error '1004': method 'Add' of object 'Sheets' failed, "перекрытие" действий ?!
 
Добрый день!
Возможно, Вы мне сможете помочь :-)
Проблема заключается в следующем:

При запуске макроса выдает сообщение об ошибке:
run-time error '1004': method 'Add' of object 'Sheets' failed

Выделяет:
Код
Workbooks(raschet).Sheets.Add After:=Sheets(Sheets.Count)

Перед этим идет обновление большой сводной таблицы.
1) Если не выполнять обновление сводной таблицы, то процедура выполняется без ошибки.
2) Также, если после сообщения об ошибка нажать debug, а потом снова run sub, то процедура выполняется далее без ошибки.
Возникает мысль, что ошибка возникает из-за перекрытия действий.

Может ли такое быть?
Если да, то как этого избежать? Например, задать промежуток времени бездействия после обновления таблицы.
Изменено: Rita - 11.11.2016 09:24:51
Использовать переменную из формы в процедуре
 
Добрый день!
Помогите, пожалуйста, разобраться.

Необходимо, чтобы при запуске макроса выдавалась форма с вариантами выбора филиала.
После нажатия на "ок" отображалось, какой филиал был выбран.
Это у меня получилось.

А далее я хочу использовать значение переменной выбранного филиала в процедуре.
Но при попытке отобразить это значение я не вижу выбранный филиал.

Пример:
Формы:
Код
Private Sub CommandButton1_Click()
For Each filial In Me.Frame1.Controls
    If filial.Value = True Then
    MsgBox "Выбран филиал " & filial.Caption
    UserForm1.Hide
    End If
Next
End Sub

Модули:
Код
Public filial As Variant
Sub konkurent()
    UserForm1.Show
    MsgBox filial
End Sub

Вопрос:
Почему при попытке вывода значения переменной окно пустое без выбранного филиала?
Изменено: Rita - 10.11.2016 07:36:12
Страницы: 1
Наверх