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

Страницы: 1 2 3 4 5 6 7 След.
VBA. Исключить значение из фильтра сводной таблицы на базе OLAP
 
Добрый день

есть сводная таблица, на основе OLAP куба  :

в области фильтров сводной, помещено поле Status. Необходимо при помощи макроса из фильтра Status исключить значение : "Shipped".
При этом количество элементов в фильтре может быть разным, но исключать нужно всегда элемент "Shipped", все остальные оставлять

Нашел способ как оставить только один элемент в фильтре, а вот чтобы наоборот исключить этот самый элемент, не получается и выражение <> (не равно не применяется к этой конструкции)
Код
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Supply plan].[Status].[Status]").VisibleItemsList=Array("[Supply plan].[Status].&[Shipped]")
Изменено: pinguindell - 26.05.2021 14:05:13
Power Query : ошибка DataFormat.Error (на этапе извлечения даты из имени файла)
 
Цитата
ПооХкрд написал:
Как это нет, если именно на нем и ошибка?
добрый день ПооХкрд, это я по ошибке включил данный шаг в запрос, забыл его удалить перед заливкой файла на форум
Но Ваше решение натолкнуло меня на следующую мысль про региональные настройки, а именно, я зашел в окне редактора запросов PQ:
Цитата
Файл -> Параметры и Настройки  -> Текущая книга  -> Региональные настройки
и изменил их на Языковой стандарт (Русский (Россия), после чего даты приняли странный вид :
4/13/2021
но когда выгрузил данные на лист, они уже были в нормальном читабельном формате
13.04.2021
Power Query : ошибка DataFormat.Error (на этапе извлечения даты из имени файла)
 
Всем привет

возникла проблема, в процессе импорта нескольких файлов из папки через PQ

А именно при выделении даты из названия файла появляется ошибка :
Цитата
DataFormat.Error: Не удалось выполнить синтаксический анализ входных данных, предоставленных в качестве значения даты дата через тире
при этом в запросе нет никаких лишних шагов по преобразованию типа данных.
Перепробовал уже кучу вариантов: с разделением извлеченной даты на отдельные столбцы и последующую склейку, замену тире на точку и последующее преобразование типа данных в дату, ничего не помогает.

Может туплю на каких-то банальных вещах  :sceptic:

Файл во вложении
Отправка письма из Excel посредством (SentKeys)
 
Ребята, всем спасибо. Решил таки эту задачку. Файл во вложении, вдруг кому-то пригодиться еще

Автозапуск из файла убрал

Всем еще раз спасибо  
Отправка письма из Excel посредством (SentKeys)
 
New, спасибо, перезалил файл

попробовал, не помогло (
но пока убирал запуск при открытии, понял, что если запускать макрос после открытия книги, то макрос срабатывает корректно. Видимо предположение подтверждается и нужно как-то либо деактивировать окно Excel, либо активировать окно Outlook  
Изменено: pinguindell - 19.10.2020 13:04:06
Отправка письма из Excel посредством (SentKeys)
 
Ребята, всем привет

Нужна Ваша помощь, суть задачи следующая

Есть Excel файл, при открытии которого запускается макрос, отправляющий письмо из Outlook

Реализовал отправку письма, при помощи нажатия SentKeys, потому как при обычной отправке появляется сообщение с защитой от массовой рассылки



Отключить данную опцию в настройках Outlook не могу, т.к. это терминальный компьютер, в котором админы заблокировали отключение данной опции

Ошибок и трудностей при формировании письма нет. Но есть огромная проблема при его отправке. Письмо в Outlook создается, но не отправляется и я даже понял почему, потому что в момент выполнения SentKeys, окно Outlook не активно, стоит его активировать вручную курсором, письмо без проблем отправляется

Может кто подскажет как мне сделать окно Outlook активным в момент нажатия SentKeys ?  
Изменено: pinguindell - 19.10.2020 13:02:42
Автоматический запуск макроса при открытии книги (с условием бездействия пользователя определенное время)
 
Ребята, поломал еще немного голову над всей этой задачкой, решил сделать выбор в пользу UserForm, но и там меня ждала куча вопросов, к счастью удалось их все решить, поэтому кому интересно, выкладываю финальный вариант решения

P.S. для красоты добавил в форму таймер с обратным отсчетом )

Изменено: pinguindell - 18.10.2020 14:44:08
Автоматический запуск макроса при открытии книги (с условием бездействия пользователя определенное время)
 
Hugo, спасибо за пример, очень интересный, буду изучать.
теперь понял, почему у меня код ни туда ни сюда не работал, оказывается дело в vbs

DANIKOLA, попробовал использовать Ваш вариант, все также без изменений, файл открывается и ничего дальше не происходит (

Заметил один момент, если запускать макрос через кнопку Popup msg, то окно закрывается автоматически через 3 секунды, если же повесить запуск данного макроса на событие workbook open, то окно показывается, но уже не закрывается, видимо все те же чудеса vbs
Автоматический запуск макроса при открытии книги (с условием бездействия пользователя определенное время)
 
Добрый вечер, уважаемые форумчане

Думаю над одной задачкой, но никак не могу додумать, помогите пожалуйста.

Необходимо чтобы при открытии книги появлялось окно msgbox, в котором есть две кнопки Да и Отмена

Если нажимаешь Да, то запускается макрос (Macro1)
Если нажимаешь Отмена, то макрос (Macro1) не запускается

Но как нужно модифицировать код, так чтобы, если в течение 5 секунд после открытия книги и бездействия пользователя (т.е. не нажата ни одна кнопка в msgbox), окно msgbox закрывалось, а сам макрос (Macro1) был запущен ?

В качестве начального решения использовал следующий код, но он почему-то не закрывает автоматически окно MsgBox и не запускает макрос,
Код
Private Sub Workbook_Open()

Dim msg As String, runcode As Long

msg = "Нажмите Отмена для отмены запуска макроса, в противном случае макрос будет запущен в течение 5 сек.!"

runcode = CreateObject("Wscript.Shell").Popup(msg, 5, "Выберите действия:", vbOKCancel)

If runcode = 2 Then End

Call Macro1

End Sub
и
Код
Sub Macro1()
MsgBox "макрос"
End Sub
Где регулируется отображение разрядности чисел в Power BI?, Визуализация в Power BI?
 
Казалось бы простая штука, но сам искал минут 15 )))

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

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

Необходимо чтобы при пересчете формулы в ячейке, столбца А, автоматически (макросом) проставлялась текущая дата и время в ячейку столбца D, в той строке, которой сработал пересчет формулы (при этом если дата уже есть в столбце D, ее нужно затереть на текущую)

Написал макрос, но он почему то при пересчете одной формулы, проставляет одинаковую дату на весь заданный диапазон А3:А100
Код
Private Sub Worksheet_Calculate()

Dim target As Range
Dim Cell As Variant
Set target = Range("A3:A100")

For Each Cell In target.Cells
If Not Intersect(Cell, Range("A3:A100")) Is Nothing Then
    
     Cell.Offset(0, 3).Value = Now
    End If
Next Cell

End Sub
Размещение файла с надстройкой на сетевом (локальном) диске
 
buchlotnik, спасибо попробую
Размещение файла с надстройкой на сетевом (локальном) диске
 
Добрый день, уважаемые форумчане

Следующая ситуация. Создал надстройку для пользователей, но периодически ее приходится обновлять, физически добираясь до компьютера пользователей (всего 3 компьютера) и заменять файл с надстройкой на актуальный

Хочу попробовать вариант, размещения файла с надстройкой на общем диске (локальный диск компании), чтобы можно было заменять сам файл с надстройкой без необходимости физического посещения кабинета этих сотрудников. Предполагается, что надстройкой будут пользоваться 3 сотрудника

Вопрос, снизится ли скорость работы надстройки, при таком размещении, можно ли будет используя один файл, подключить надстройку на трех отдельных компьютерах и какие ограничения такого способа обновления надстройки меня ждут ?
Изменено: pinguindell - 03.09.2019 11:27:45
Добавить перехват ошибок в формулу, написанную в макросе
 
RAN, спасибо ! работает !
Добавить перехват ошибок в формулу, написанную в макросе
 
Sanja, я понимаю, но эта формула часть кода макроса и диапазон суммцвет каждый раз разный и поэтому требуется ввод переменой ilastraw  
Добавить перехват ошибок в формулу, написанную в макросе
 
Добрый день уважаемые форумчане,

что то я с этими запятыми глаза в кучу собрал, не могу видоизменить одну формулу :

Есть исходная формула на VBA :
Код
iLastRow = Cells(Rows.Count, 4).End(xlUp).Row
Range("K3").Formula = "=СУММЦВЕТ(K15:K" & iLastRow & "," & "I3" & ")"  

необходимо ее немного модифицировать и добавить перехват ошибок, чтобы получилось следующее

Код
Range("K3").Formula = "=IFERROR(IF(R[11]C="""","""",СУММЦВЕТ(R[12]C:R[94]C,RC[-2])),"""")"

Но никак не могу понять, где нужно поставить амперсант и кавычки

Изменил ее следующим образом
Код
Range("K3").Formula = "=IFERROR(IF(R[11]C="""","""",СУММЦВЕТ(K15:K" & iLastRow & "," & "I3" & ")),"""")"

но в результате основные переменные в формуле теперь заключены в кавычки  
Добавление определенного цвета в секцию "Последние цвета" в палитру цветов средствами VBA
 
Wiss,спасибо ! Обязательно ознакомлюсь и проверю на рабочем примере . Нашёл альтернативное , подходящее для меня решение , в поредение выложу рабочие файлы .

Решение на базе решения ikki, в теме
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=37551
Добавление определенного цвета в секцию "Последние цвета" в палитру цветов средствами VBA
 
файлы
Изменено: pinguindell - 22.08.2019 15:53:39
Импорт макроса в код листа
 
The_Prist, круть, спасибо за помощь ! с помощью этой статьи, сумел решить свою задачу
Добавление определенного цвета в секцию "Последние цвета" в палитру цветов средствами VBA
 
Добрый день уважаемые форумчане, такой вопрос, а можно ли средствами VBA, добавить в стандартную палитру в блок "Последние цвета", свой собственный цвет ?

В интернете нашел статью https://www.thespreadsheetguru.com/the-code-vault/vba-add-recent-colors-to-palette
но это как мне кажется не совсем то что нужно

Может кто-то задавался уже подобным вопросом ?

Данное действо необходимо для того, чтобы пользователь через надстройку "добавлял" данные цвета и потом использовал именно их для заливки ячеек. После чего при помощи функции происходил подсчет суммы по цвету ячеек
Таймер обратного отсчета на запуск макроса в кнопку CommandButton в UserForm
 
ребята, сегодня совершенно случайно нашел еще одно решение, которое как раз то, что я хотел

Во вложении файлик, может кому пригодиться
Таймер обратного отсчета на запуск макроса в кнопку CommandButton в UserForm
 
RAN, супер, спасибо за помощь, то что нужно  
Таймер обратного отсчета на запуск макроса в кнопку CommandButton в UserForm
 
Добрый день уважаемые форумчане,

обращаюсь к Вам за очередным советом и помощью
Знаю, что подобное решение уже где-то всплывало, поиском по Форуму воспользовался, но не нашел ничего подходящего

Суть задачи. Есть Userform, в которой есть кнопка "Старт макроса", как сделать так, чтобы при отображении формы, в кнопке "Старт макроса" отображались секунды обратного отсчета, по истечении которых, автоматически запускался бы макрос Text, который повешен на данную кнопку, если же пользователь нажимает кнопку до истечения таймера, то запускался бы все тот же макрос Text

Буду признателен за помощь
Изменено: pinguindell - 19.08.2019 15:24:18
Закончить автоматический пересчет формул и последующее выполнение кода макроса
 
Добрый день уважаемые форумчане, есть код, который прописывает в таблице формулы
Код
Dim cell_overdue As Object
Dim ñLastRow_overdue As Long
Dim clearLastRow_overdue As Long

clearLastRow_overdue = 2

For Each cell_overdue In ActiveSheet.Range("1:1").Cells
If cell_overdue.Value = "" Then Exit For
ñLastRow_overdue = ActiveSheet.Cells(Rows.Count, cell_overdue.Column).End(xlUp).Row
 If ñLastRow_overdue > clearLastRow_overdue Then clearLastRow_overdue = ñLastRow_overdue
Next cell_overdue

If clearLastRow_overdue > 1 Then

'блок формул 1

ActiveSheet.Range(Cells(2, 23), Cells(clearLastRow_overdue, 23)).FormulaR1C1 = _
        "=IF(AND(""Q1 Ìàð""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q2 Èþí""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q3 Ñåí""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q4 Äåê""=[@[Date.Q]],COUNTIFS(R1C10:R" & _
        "C[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q1 Ôåâ""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q2 Ìàé""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q3 Àâã""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[" & _
        "@[Date.M-Y]]),IF(AND(""Q4 Íîÿ""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q1 ßíâ""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q2 Àïð""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q3 Èþë""=[@[Date.Q]],COU" & _
        "NTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),IF(AND(""Q4 Îêò""=[@[Date.Q]],COUNTIFS(R1C10:RC[-13],RC[-13])=1),MAXIFS([Date.D],[Date.M-Y],[@[Date.M-Y]]),""""))))))))))))" & _
        ""

ActiveSheet.Range(Cells(2, 24), Cells(clearLastRow_overdue, 24)).FormulaR1C1 = "=CONCAT([@[Date.Q]],[@[Date.Y]])"
ActiveSheet.Range(Cells(2, 25), Cells(clearLastRow_overdue, 25)).FormulaR1C1 = "=LEFT([@[Date.Q]],2)&[@[Date.Y]]"
ActiveSheet.Range(Cells(2, 26), Cells(clearLastRow_overdue, 26)).FormulaR1C1 = "=MAXIFS([Date for MTD AR],[System_2],[@[System_2]])"
ActiveSheet.Range(Cells(2, 27), Cells(clearLastRow_overdue, 27)).FormulaR1C1 = "=IF(AND([@[System_3]]>0,COUNTIFS(R1C26:RC[-1],RC[-1])=1),SUMIFS([Ñóììà],[Date.D],[@[System_3]]),"""")"
ActiveSheet.Range(Cells(2, 28), Cells(clearLastRow_overdue, 28)).FormulaR1C1 = "=IF([@[Sum AR overdue_pivot]]<>"""",LEFT([@[System_1]],2),"""")"
ActiveSheet.Range(Cells(2, 29), Cells(clearLastRow_overdue, 29)).FormulaR1C1 = "=IF([@[Sum AR overdue_pivot]]<>"""",[@[Date.Y]],"""")"
ActiveSheet.Range(Cells(2, 30), Cells(clearLastRow_overdue, 30)).FormulaR1C1 = "=IF([@[Year_pivot]]<>"""",""ok"","""")"
ActiveSheet.Range(Cells(2, 31), Cells(clearLastRow_overdue, 31)).FormulaR1C1 = "=IF([@Flag]=""ok"",IFERROR(IF(SUMIFS(Total[Ñàëüäî íà êîíåö ïåðèîäà],Total[Date.D],[@[System_3]])=0,"""",SUMIFS(Total[Ñàëüäî íà êîíåö ïåðèîäà],Total[Date.D],[@[System_3]])),""""),"""")"

'блок формул 2

ActiveSheet.Range(Cells(2, 32), Cells(clearLastRow_overdue, 32)).FormulaR1C1 = "=CONCATENATE([@Date]&""_""&[@Çàêàç÷èê]&""_""&[@Ïîëó÷àòåëü]&""_""&[@[Ñïðàâ.¹]]&""_""&""_""&[@[System_'#]]&""_""&[@Ñóììà])"
ActiveSheet.Range(Cells(2, 33), Cells(clearLastRow_overdue, 33)).FormulaR1C1 = "=IF(LEN(CONCATENATE([@Çàêàç÷èê]&""_""&[@Ïîëó÷àòåëü]&""_""&[@[Ñïðàâ.¹]]&""_""&[@Ñóììà]&""_""&[@[Date.W]]))>255,CONCATENATE([@Çàêàç÷èê]&""_""&[@Ïîëó÷àòåëü]&""_""&[@Äîêóìåíò]&""_""&[@Ñóììà]&""_""&[@[Date.W]]),CONCATENATE([@Çàêàç÷èê]&""_""&[@Ïîëó÷àòåëü]&""_""&[@[Ñïðàâ.¹]]&""_""&[@Ñóììà]&""_""&[@[Date.W]]))"
ActiveSheet.Range(Cells(2, 34), Cells(clearLastRow_overdue, 34)).FormulaR1C1 = "=IF(LEN([@Çàêàç÷èê]&""_""&[@Ïîëó÷àòåëü]&""_""&[@[Ñïðàâ.¹]]&""_""&[@Ñóììà])>255,[@Çàêàç÷èê]&""_""&[@Ïîëó÷àòåëü]&""_""&[@Äîêóìåíò]&""_""&[@Ñóììà],[@Çàêàç÷èê]&""_""&[@Ïîëó÷àòåëü]&""_""&[@[Ñïðàâ.¹]]&""_""&[@Ñóììà])"
ActiveSheet.Range(Cells(2, 35), Cells(clearLastRow_overdue, 35)).FormulaR1C1 = "=COUNTIF(R1C33:RC[-2],RC[-2])"
ActiveSheet.Range(Cells(2, 36), Cells(clearLastRow_overdue, 36)).FormulaR1C1 = "=IF(AND([@[System_Ïîâòîðû]]=1,SUMIFS([System_Ïîâòîðû],[System_Êëþ÷_êîë-âî ïîâòîðîâ äàò â ðàìêàõ íåäåëè],RC[-3])>1),""blanks"","""")"
ActiveSheet.Range(Cells(2, 37), Cells(clearLastRow_overdue, 37)).FormulaR1C1 = "=COUNTIF(R1C34:RC[-3],RC[-3])"
ActiveSheet.Range(Cells(2, 38), Cells(clearLastRow_overdue, 38)).FormulaR1C1 = "=COUNTIFS([System_Êëþ÷_êîë-âî ïîâòîðîâ äàò â ðàìêàõ íåäåëè],RC[-5])"
ActiveSheet.Range(Cells(2, 39), Cells(clearLastRow_overdue, 39)).FormulaR1C1 = "=IF(AND([@[System_'#]]=1,[@[System_Îáùåå ÷èñëî ïîâòîðîâ]]=1),1,IF([@[System_Blanks]]<>""blanks"",MAXIFS(R1C39:R[-1]C,R1C34:R[-1]C[-5],RC[-5])+1,""""))"
ActiveSheet.Range(Cells(2, 40), Cells(clearLastRow_overdue, 40)).FormulaR1C1 = "=IFERROR(IF(IF([@[System_ñëó÷àé ïðîñðî÷êè]]=1,0,7*[@[System_ñëó÷àé ïðîñðî÷êè]])-7<0,IF([@[System_ñëó÷àé ïðîñðî÷êè]]=1,0,7*[@[System_ñëó÷àé ïðîñðî÷êè]])-7+7,IF([@[System_ñëó÷àé ïðîñðî÷êè]]=1,0,7*[@[System_ñëó÷àé ïðîñðî÷êè]])-7),"""")"


End If

затем происходит конвертация данных формул в значения

Код
Range("Overdue[[Date for MTD AR]:[Êîëè÷åñòâî äíåé ïðîñðî÷êè]]").Select

Dim smallrng_overdue As Range
    
For Each smallrng_overdue In Selection.Areas
    smallrng_overdue.Value = smallrng_overdue.Value
Next smallrng_overdue

проблема в том, что формулы не успевают пересчитаться и соответственно происходит конвертация не вычисленных данных в значения

пробовал использовать конструкцию

Код
''If Not Application.CalculationState = xlDone Then
''DoEvents
''End If

после блока формул, но ничего не выходит, формулы по прежнему продолжают не пересчитываться

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

Пропадает связь диаграмм между Excel и ppt
 
mos_art,

1. а источник, в котором находится excel файл, имею ввиду, папка постоянно стабилен ? не переименовывается, не перемещается в другую папку ?
2. исходный excel файл не переименовывается ?
TextToColumns при преобразовании данных задает вопрос о замене
 
sokol92,спасибо ! работает

Просто заменой и копированием в ручном режиме, все это делать будет весьма проблематично, при ежедневной работе, а макрос то что нужно для автоматизации рутины !
TextToColumns при преобразовании данных задает вопрос о замене
 
Добрый день уважаемые форумчане,

написал следующий макрос, который преобразовывает данные из 1С в числовой формат, но при использовании метода TextToColums, он почему то требует замены, при этом разбивая цифры на отдельные столбцы.

Может кто уже сталкивался с таким и как обойти эту проблему ? Проблему не в плане появления запроса, а в плане, чтобы числа преобразовывались в числа без разделения на части
Изменено: pinguindell - 06.06.2019 11:28:55
Транспонирование строк из вертикального массива в горизонтальный
 
Юрий М, как всегда респектище большой ! Спасибо
Транспонирование строк из вертикального массива в горизонтальный
 
Добрый день уважаемые форумчане, в очередной раз требуется Ваша помощь в написании макроса

Есть выгрузка из 1С
Исходные данные на листе AS IS (количество строк может быть больше / меньше, чем указано в примере), то что должно получиться на листе TO BE

Необходимо данные в столбце С транспонировать в строку, сложность заключается в том, что количество строк в столбце С для определенной группы может варьироваться от 4 до 6. После транспонирования, транспонированные строки необходимо удалить, а также столбец С в котором находились транспонированные данные

Буду очень признателен за помощь
Изменено: pinguindell - 04.06.2019 14:22:31
Формула расчета уникальных значений по порядку (Power Pivot)
 
PooHkrd, спасибо ! Выручили, несказанно благодарен за помощь !
Страницы: 1 2 3 4 5 6 7 След.
Наверх